Apparently, I've not had enough coffee this morning--I missed your last sentence. It's complaining that $_ is not numeric. So I'm guessing you're iterating over the list of strings rather than a list of numbers when processing the array, something like:
my @array1 = ('foo', 'bar', 'baz'); my @array2 = ('zim', 'zam', 'baz'); # should work: for (0 .. $#array1) { if ($array1[$_] eq $array2[$_]) { print "match! $array[$_]\n" } else { print "mismatch $array1[$_] ne $array2[$_] } } # should give a similar error: for (@array1) { if ($array1[$_] eq $array2[$_]) { print "match! $array[$_]\n" } else { print "mismatch $array1[$_] ne $array2[$_] } }
Try printing the value of $_ before using it as an array index, and you'll see what perl is complaining about.
You're not showing your comparison code, but from the error message, I'm guessing you're using the numeric equality operator (==) rather than the string equality operator (eq) to compare lines.
Update: Rewrote node after re-reading OP and realizing my goof.
...roboticus
When your only tool is a hammer, all problems look like your thumb.
In reply to Re: File to array and reading back
by roboticus
in thread File to array and reading back
by Kris0r
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |