sub run_and_time(&@) { use Time::HiRes; my $func = shift; my $funcName = [some bit of code to get $func's name] my $start_time = [gettimeofday]; my @retlist = &{$func}(@_); print "Time to run $funcName: ", tv_interval($start_time), "\n"; }