use Data::Dump::Streamer; my $x=counter(); { my $i=1; sub counter { my $r=$i; $i++; $r }; } Dump($x,\&counter)->Names(qw(x *counter))->Out(); __END__ my ($i); $i = 1; $x = undef; sub counter { my $r = $i; ++$i; $r; }; #### use Data::Dump::Streamer; { sub make_counter { my $i=shift; return sub { my $r=$i; $i++; $r } }; } my @counters=map { make_counter($_) } 1..5; Dump(\@counters); __END__ my ($i,$i_eclipse_1,$i_eclipse_2,$i_eclipse_3,$i_eclipse_4); $i = 1; $i_eclipse_1 = 2; $i_eclipse_2 = 3; $i_eclipse_3 = 4; $i_eclipse_4 = 5; $ARRAY1 = [ sub { my $r = $i; ++$i; $r; }, sub { my $r = $i_eclipse_1; ++$i_eclipse_1; $r; }, sub { my $r = $i_eclipse_2; ++$i_eclipse_2; $r; }, sub { my $r = $i_eclipse_3; ++$i_eclipse_3; $r; }, sub { my $r = $i_eclipse_4; ++$i_eclipse_4; $r; } ];