http://qs1969.pair.com?node_id=158614


in reply to Re: Scoping issue when sorting with subroutines
in thread Scoping issue when sorting with subroutines

> Keep in mind that perl currently doesn't do nested subs
Ack, how un-DWIM!
sub foo { my $x = "a var in foo()"; sub bar { print "\$x is - [$x]\n"; } } bar(); __output__ $x is - []
But if we use a closure, all is well with the scope of $x
sub foo { my $x = "a var in foo()"; return sub { print "\$x is - [$x]\n"; } } foo()->(); __output__ $x is - [a var in foo()]
I was vaguely aware of the fact that nested subs in perl were broken (i.e scoped to current package, not current sub) and now I know the full extent (but I guess the logic should've followed really). Oh well, not much longer til Perl6 anyway ...
HTH

broquaint