sub make_funcs { my $val = shift; (sub {$val * $val}, sub {$val++}) } my($f3, $i3) = make_funcs(3); my($f5, $i5) = make_funcs(5); say $f3->(); say $f5->(); $i3->(); say $f3->(); say $f5->(); __END__ 9 25 16 25