sub timestr { my $sec = shift; my $retstr; if($sec >= 1_000) { $retstr = commify(int $sec) . 's'; } elsif($sec >= 1) { $retstr = sprintf $sec == int $sec ? '%ds' : '%0.3fs', $sec; } elsif($sec >= 0.001) { my $ms = $sec * 1_000; $retstr = sprintf $ms == int $ms ? '%dms' : '%0.3fms', $ms; } elsif($sec >= 0.000001) { $retstr = sprintf '%dus', $sec * 1_000_000; } else { # I'll have whatever real-time OS she's having $retstr = $sec . 's'; } $retstr; }