in reply to Anonymous subroutines

One interesting possibility. Consider:

use strict; use warnings; sub MakeCounter { my $seed = 0; my $func = sub {return $seed++;}; return $func; } my $counter1 = MakeCounter(); my $counter2 = MakeCounter(); for (1 .. 3) { $counter1->(); $counter2->() for 1 .. 3; } printf "Count 1: %d, Count 2: %d\n", $counter1->(), $counter2->();

Prints:

Count 1: 3, Count 2: 9
Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond