slow_leaner wrote:
Hi,
Hello,
I have a list of element in array that I would like to match the pattern in logs file. I have hard time take element from array and matching it. More then weeks now and don't know where to find in man page.
perldoc -q "How do I efficiently match many regular expressions at once"
please help me. Here is my code. #!/usr/bin/perl -w open ( FILE, " /var/log/cisco.log " ) || die "can't open cisco.log file!"; @cisco.log = <FILE>; close (FILE); @array = qw( BPDUGUARD FAN_FAIL ); # more then 2 elements in array while (<@cisco.log>){
That is *not* how you read lines from a file. Remove: @cisco.log = <FILE>; close (FILE); from above and then your while loop should be: while ( <FILE> ) {
foreach $line (@array){ $_ =~ $line; #DOESN'T WORK AND I AM STUCK..
You are performing the match in void context so it is superfluous. See the FAQ entry above for how to do it.
print "$_\n"; #WANT TO PRINT THAT MATCH } }
John -- Perl isn't a toolbox, but a small machine shop where you can special-order certain sorts of tools at low cost and in short order. -- Larry Wall -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/