Your problem is that $fn isn't a lexical variable --- you'll want to use my() so the anonymous subroutine acts as a closure around each lexical $fn. See the difference between these two snippets:
my @subs; foreach $fn (1,2) { push @subs, sub{print "$fn\n"}; } $fn = 42; foreach $sub (@subs) { $sub->(); } @subs = (); foreach my $fn (1,2) { push @subs, sub{print "$fn\n"}; } $fn = 42; foreach $sub (@subs) { $sub->(); }
In reply to Re: Perl/Tk Menus
by danger
in thread Perl/Tk Menus
by Clachair
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |