in reply to Assignment changes handle?
That's an odd one. I've reduced it down to the following:
use strict; my $ARG1 = shift(); my $ARG2 = shift(); open(F,$0); my $N; map { print "TRACE $_"; my @a = (1); $N = @a[1..0]; #1; } <F>; close(F); print "\nN = /$N/\n"; #WATCH FOR THIS LINE!
It appears as though $N is getting set to the return value from the map operation. Notice that I added a commented out line in the map block. If you uncomment this, the value of $N will always be 1.
I don't know what the answer is, but I thought this was worth mentioning. Also, changing this to a while doesn't have this problem, so I think it definitely has something to do with the return value from the map function.
HIH
|
|---|