package ScoreFilter; #ScoreFilter.pm - Filters out code #Copyright (C) 2001 Jacob T. Joaquin # #This program is free software; you can redistribute it and/or #modify it under the terms of the GNU General Public License #as published by the Free Software Foundation; either version 2 #of the License, or (at your option) any later version. # #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. use strict; # bandreject($score,$field,$lowerLimit,$upperLimit) # bandpass($score,$field,$lowerLimit,$upperLimit) # lopass($score,$field,$limit) # highpass($score,$field,$limit) sub bandreject { my $score = shift; my $field = (shift) - 1; my $lowerLimit = shift; my $upperLimit = shift; my @listInput; my @listOutput; my @line; my $lineOutput; @listInput = split ('\n', $score); foreach (@listInput) { undef @line; @line = split (' ', $_); if ($line[$field] < $lowerLimit || $line[$field] > $upperLimit) { $lineOutput = join (' ', @line); push @listOutput, "$lineOutput\n" } } undef $lineOutput; foreach (@listOutput) { $lineOutput .= $_ } return $lineOutput; } sub bandpass { my $score = shift; my $field = (shift) - 1; my $lowerLimit = shift; my $upperLimit = shift; my @listInput; my @listOutput; my @line; my $lineOutput; @listInput = split ('\n', $score); foreach (@listInput) { undef @line; @line = split (' ', $_); unless ($line[$field] < $lowerLimit || $line[$field] > $upperLimit) { $lineOutput = join (' ', @line); push @listOutput, "$lineOutput\n" } } undef $lineOutput; foreach (@listOutput) { $lineOutput .= $_ } return $lineOutput; } sub hipass { my $score = shift; my $field = (shift) - 1; my $limit = shift; my @listInput; my @listOutput; my @line; my $lineOutput; @listInput = split ('\n', $score); foreach (@listInput) { undef @line; @line = split (' ', $_); if ($line[$field] > $limit) { $lineOutput = join (' ', @line); push @listOutput, "$lineOutput\n" } } undef $lineOutput; foreach (@listOutput) { $lineOutput .= $_ } return $lineOutput; } sub lopass { my $score = shift; my $field = (shift) - 1; my $limit = shift; my @listInput; my @listOutput; my @line; my $lineOutput; @listInput = split ('\n', $score); foreach (@listInput) { undef @line; @line = split (' ', $_); if ($line[$field] < $limit) { $lineOutput = join (' ', @line); push @listOutput, "$lineOutput\n" } } undef $lineOutput; foreach (@listOutput) { $lineOutput .= $_ } return $lineOutput; } 1;