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/


Reply via email to