sub foo { my *foo = shift; sub {${*foo}} } my $x = foo(*foo); $foo = "Hmm"; print $x->(); my $y = foo(\23); print $y->();