use Data::Dumper; $Data::Dumper::Deparse = 1; my $sub; { my $x = "foo"; $sub = sub { my $filename = shift; return "/tmp/$x/" . $filename; }; } print Dumper($sub); __END__ $VAR1 = sub { my $filename = shift @_; return "/tmp/$x/" . $filename; }; #### use Data::Dump::Streamer; my $sub; { my $x = "foo"; $sub = sub { my $filename = shift; return "/tmp/$x/" . $filename; }; } print Dump($sub); __END__ my ($x); $x = 'foo'; $CODE1 = sub { my $filename = shift @_; return "/tmp/$x/" . $filename; }; #### use B::Deparse; my $deparse = B::Deparse->new; my $sub; { my $x = "foo"; $sub = sub { my $filename = shift; return "/tmp/$x/" . $filename; }; } print $deparse->coderef2text($sub),"\n"; __END__ { my $filename = shift @_; return "/tmp/$x/" . $filename; }