sub make_closures { my $j = shift; return (sub {++$j;}, sub {print $j, "\n";}); } my ($bump1, $print1) = make_closures(5); my ($bump2, $print2) = make_closures(10); &$print1; &$bump1; &$print1; &$print2; &$bump2; &$print2; #### 5 6 10 11