Re: matching elements from array and print the results line by line from log file
- From: jwkrahn@xxxxxxx ("John W. Krahn")
- Date: Tue, 28 Oct 2008 15:41:35 -0700
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
.
- References:
- Prev by Date: RE: matching elements from array and print the results line by line from log file
- Next by Date: Re: Reading a list of numbers from a file into a array
- Previous by thread: Re: matching elements from array and print the results line by line from log file
- Next by thread: Installing perl modules
- Index(es):
Relevant Pages
|