sub foo { my ( $arg ) = @_ ; my $bar = sub { print "ARG[$arg]\n" ; return "RE[$arg]" ; } ; return $bar ; } my $bar1 = foo(123) ; my $bar2 = foo(456) ; my $foo1 = &$bar1() ; my $foo2 = &$bar2() ; print "foo1: $foo1\n" ; print "foo2: $foo2\n" ;