sub foo { my $t0 = Benchmark->new(); .. code .. my $t1 = Benchmark->new(); say "foo() took" . timestr(timediff($t1, $t0)); } sub bar { my $t0 = Benchmark->new(); .. code .. my $t1 = Benchmark->new(); say "bar() took" . timestr(timediff($t1, $t0)); } #### sub foo { say "Starting foo() with yadda"; .. code .. say "Now doing stuff"; .. code .. say "Now munging"; say "Done with foo()"; } #### my $DEBUG = 1; sub foo { logit "Starting foo() with yadda"; .. code .. logit "Now doing stuff"; .. code .. logit "Now munging"; logit "Done with foo()"; } sub logit { my ($msg) = @_; if ($DEBUG) { say $msg; } }