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


in reply to Re: foreach-loop-local var in sub
in thread foreach-loop-local var in sub

FYI, Perl 5.18 will have experimental implementations of my sub, state sub and our sub. our sub is effectively the same as the existing sub keyword but can also be used to hide my sub subs, a la:

use 5.010; our $foo = 42; my $foo = 99; say $foo; # says 99 our $foo; # "hides" my $foo say $foo; # says 42
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name

Replies are listed 'Best First'.
Re^3: foreach-loop-local var in sub
by muba (Priest) on Jan 22, 2013 at 06:23 UTC

    I'm looking forward to my subs!

      > I'm looking forward to my subs!

      no need to wait it's just another syntax for my $sub =sub {}, just w/o the need to do dereferencing and occupying a scalar variable.

      from Re: foreach-loop-local var in sub:

      use strict; use warnings; foreach (0, 1) { my $i = $_; my $print = sub { print $i; }; $print->(); # 0,1 }

      Cheers Rolf

        Which is what I use all the time now ;) But it feels kinda hacky, even though it works and even though it's actually documented behaviour. Getting "real" lexically scoped subroutines would feel less work-aroundish.