while (<$file_handle>) {
my @line_array = split(/,/,$_);
push(@filtered_result,$_) if $line_array[70] =~ /192\.168\.200\.|10\.10\.200/; #THIS ISN'T EXACTLY WHAT I WAS DOING SINCE I USUALLY HAD MULTIPLE VALUES TO CHECK
}
####
my $grep_filters = [
{
'sub' => sub {
my ($line) = shift @_;
return $line if $line =~ /,SEVERE,/;
},
},
{
'sub' => sub {
my ($line) = shift @_;
return $line if $line =~ /192\.168\.200\.|10\.10\.200/;
return undef;
},
},
];
while(<$FILE>){
foreach my $my_filter_fn (@$filters){
my $return = $my_filter_fn->{'sub'}->($_);
push(@return_array,$return) unless not defined $return;
}
}
####
my @filter_string_array = ('192\.168\.200\.|10\.10\.200',',SEVERE,');
...
my @local_filter_string_array = @filter_string_array;
my $first_filter_string = shift @local_filter_string_array;
my @output = grep {/$first_filter_string/} <$FILE>;
foreach my $filter_string (@local_filter_string_array){
@output = grep {/$filter_string/} @output;
}
####
my $grep_source = '<$FILE>';
my @filter_string_array = ('192\.168\.200\.|10\.10\.200',',SEVERE,');
foreach my $filter_string (@filter_string_array){
$grep_string_expansion = 'grep {/' . $filter_string . '/} (' . $grep_source . ')';
$grep_source = $grep_string_expansion;
} #string should look like this: grep {/,SEVERE,/} (grep {/192\.168\.200\.|10\.10\.200/} (<$FILE>));
...
my @output = eval $grep_string_expansion;
####
grep {/,SEVERE,/} (grep {/192\.168\.200\.|10\.10\.200/} (<$FILE>));