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


"Look, Shiny Things!" is not a better business strategy than compatibility and reuse.