$ perl -wle' sub make { my ($x) = @_; return sub { eval q{$x}; }; } print make(123)->() ' Use of uninitialized value in print at -e line 9. #### $ perl -wle' sub make { my ($x) = @_; return sub { eval q{$x}; }; } print make(123)->() ' Variable "$x" is not available at (eval 1) line 2. Use of uninitialized value in print at -e line 9. #### $ perl -wle' sub make { my ($x) = @_; return sub { $x if 0; # <--- added eval q{$x}; }; } print make(123)->() ' 123