sub fib { my $n = shift; if ($n < 2) { return $n; } else { return fib($n-1) + fib($n-2); } } __END__ $ time perl -le 'BEGIN { sub DB::DB {}; $^P=0x303 }; do "/tmp/fib.pl"; print fib(28)' 317811 real 0m0.949s user 0m0.941s sys 0m0.006s $ time perl -le 'do "/tmp/fib.pl"; print fib(28)' 317811 real 0m0.924s user 0m0.918s sys 0m0.005s $ time perl -le 'BEGIN { sub DB::DB {}; $^P=0xfff }; do "/tmp/fib.pl"; print fib(28)' 317811 real 0m1.719s user 0m1.712s sys 0m0.006s $ time perl -le 'BEGIN { sub DB::DB {}; $^P=0x303; $DB::trace=1 }; do "/tmp/fib.pl"; print fib(28)' 317811 real 0m1.557s user 0m1.548s sys 0m0.006s