use feature 'lexical_subs'; sub foo { my sub secret_foo { my($arg) = @_; return "Hello $arg"; }; my( $bar ) = @_; my $res = secret_foo( $bar ); return "Result is '$res'"; } print foo('World'); #### use feature 'lexical_subs'; sub foo { my $secret_foo = sub { my($arg) = @_; return "Hello $arg"; }; my( $bar ) = @_; my $res = $secret_foo->( $bar ); return "Result is '$res'"; } print foo('World');