use Benchmark; # timeit(): run $count iterations of the given Perl code, and time it $t = timeit($count, 'code'); # $t is now a Benchmark object # timestr(): convert Benchmark times to printable strings print "$count loops of 'code' took:", timestr($t), "\n"; # timediff(): calculate the difference between two times $t = timediff($t1 - $t2); # timethis(): run "code" $count times with timeit(); also, print out a # header saying "timethis $count: " $t = timethis($count, "code"); # timethese(): run timethis() on multiple chunks of code @t = timethese($count, { 'Name1' => '...code1...', 'Name2' => '...code2...', }); # new method: return the current time $t0 = new Benchmark; # ... your code here ... $t1 = new Benchmark; $td = timediff($t1, $t0); print "the code took:", timestr($dt), "\n"; # debug method: enable or disable debugging Benchmark->debug(1); $t = timeit(10, ' 5 ** $Global '); Benchmark->debug(0); ***** $ perl -MBenchmark -Minteger timethese(100000, { add => '$i += 2', inc => '$i++; $i++' }); Benchmark: timing 1000000 iterations of add, inc... add: 4 secs ( 4.52 usr 0.00 sys = 4.52 cpu) inc: 6 secs ( 5.32 usr 0.00 sys = 5.32 cpu) ***** timeit() timethis() timethese() timediff() timestr() ***** clearcache() # clear just the cache element indexed by $key clearallcache() # clear the entire cache disablecache() # do not use the cache enablecache() # resume caching ***** clearcache($key); clearallcache(); disablecache(); enablecache();