in reply to question about if/pattern matching statement
Look at the loops.
while ($line = <FB>) # every line foreach (@array) # every field in that line for ($i=0; $i<=$#dbarray1; $i++) # items in @dbarray1 # if ($array[10] =~ m/Scan/) if (/Scan/)
The first condition, ($array[10] =~ m/Scan/), will look for "Scan" in field 10 (the 11th field) n times per line where n is the number of items in @dbarray1 times the number of fields.
The second condition, (/Scan/), will look for "Scan" in each field n times where n is the number of items in @dbarray1. This is because the regexp match is not bound to a variable, so it's matching against $_, which is being iterated by the "foreach (@array)".
I suggest you check for "Scan" right after you split into @array:
while ($line = <FB>) { chomp($line); @array = split /\s*\|/, $line; if ( $array[10] =~ /Scan/ ) { # happiness ensues }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: question about if/pattern matching statement
by nkpgmartin (Sexton) on Jul 07, 2008 at 20:50 UTC |