http://www.perlmonks.org?node_id=1009777


in reply to Re^2: Scalar Value Not Available To Subroutine
in thread Scalar Value Not Available To Subroutine

> So loop "localisation" is different to the "localisation" done by local?

yes and no, since (unfortunately) you can't use local with lexicals!

But foreach tries to mimic this behaviour (a tribute to DWIM)

As you can see localization is as predicted with package vars, but seems to rebind the var to the new pad for lexical vars.

lanx@ubuntu:~$ perl our $i; for $i (1..9) { tst(); } sub tst { print $i; } 123456789 lanx@ubuntu:~$ perl my $i=42; for $i (1..9) { tst(); } sub tst { print $i; } 424242424242424242

we already had similar discussions.

Cheers Rolf