in reply to debug statements
you say you are not worried about execution speed, but the above can be enhanced to support lazy evaluation of potentially expensive debugging operations by using closures:use constant DEBUG => 1; debug("\$variable = $variable"); sub debug { return unless DEBUG >= 1; print 'DEBUG: ', @_, "\n"; }
that allows things like:sub debug { return unless DEBUG >= 1; print 'DEBUG: ', ( ref $_[0] eq 'CODE' ? $_[0]->() : @_ ), "\n"; }
and the expensive Dump operation will only be executed if DEBUG.debug( sub { Data::Dumper->new([$variable], ["variable"])->Dump } );
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: debug statements
by koknat (Sexton) on Oct 03, 2006 at 20:07 UTC | |
by duckyd (Hermit) on Oct 03, 2006 at 23:56 UTC | |
by mreece (Friar) on Oct 03, 2006 at 21:45 UTC |