in reply to Closures and lexical scope
use Data::Dumper; use GTop; my $gtop = GTop->new; my @array; make_accessor1('code1', 0); make_accessor2('code2', 0); ##Lexical my $data = $gtop->proc_mem($$)->rss; report('Before Lexical', $data); &code1(5); $data = $gtop->proc_mem($$)->rss; report('After Lexical', $data); ##Non-Lexical $data = $gtop->proc_mem($$)->rss; report('Before Non-Lexical', $data); &code2(5); $data = $gtop->proc_mem($$)->rss; report('After Non-Lexical', $data); ########## # SUBS ########## sub make_accessor1 { my ($name, $index) = @_; *{$name} = sub { $array[$index] = $_[0] }; } sub make_accessor2 { my $index = $_[1]; *{$_[0]} = sub { $array[$index] = $_[0] }; } ##REPORTER sub report{ my $title = $_[0]; my $data = $_[1]; print "$title\n--------------------\n"; print Dumper $data; print "--------------------\n\n"; }
|
|---|