$report = (sort{-M $a <=> -M $b}<*>)[0]; #### $report = ( map { $_->[1] } sort { $a->[0] <=> $b->[0] } map { [-M $_, $_] } <*>)[0] ); #### $report = do { local *D; opendir(D,"."); my $t = time; my $ret; while(my $f = readdir(D)) { next if $f =~ /^\.\.?$/; my $ft = -M $f; if($ft < $t) { $ret = $f; $t = $ft; } } closedir(D); $ret; } ; #### Benchmark: timing 1000 iterations of do, golf, st... do: 8 wallclock secs ( 4.00 usr + 4.21 sys = 8.21 CPU) @ 121.80/s (n=1000) golf: 74 wallclock secs (20.15 usr + 53.05 sys = 73.20 CPU) @ 13.66/s (n=1000) st: 34 wallclock secs (18.96 usr + 14.01 sys = 32.97 CPU) @ 30.33/s (n=1000) Rate golf st do golf 13.7/s -- -55% -89% st 30.3/s 122% -- -75% do 122/s 792% 302% --