use warnings; use strict; use B::Deparse; use Data::Dump; use constant DEBUG =>1; BEGIN { unless (DEBUG) { *dmp = sub() { 1; } } else { *dmp = sub($;@){ shift; dd \@_; } } } sub test { #$_="#"; my @a=1..3; dmp/#/, @a; } test(); warn "DEBUG = ",DEBUG,"\n"; print B::Deparse->new()->coderef2text(\&test);