sub document_if { my ($cond,$code) = @_; if ($cond) { eval $code } else { print "Not executing:\n"; print $code; print "\n---\n"; }; }; #### document_if( 1 == 0, q{ print "The sky has fallen down.\n"; }); #### use strict; use B::Deparse; my $deparse = B::Deparse->new("-p", "-sC"); sub document_if { my ($cond,$code) = @_; if ($cond) { $code->() } else { print "Not executing:\n"; print $deparse->coderef2text($code); print "\n---\n"; }; }; #### document_if( 1 == 0, sub{ print "The sky has fallen down.\n"; });