smallest{ my ($dir,$arr_ref)=@_; my %sc; #Cache of file sizes; return +(sort {$sc{$a}||=-s $a; $sc{$b}||=-s $b; $sc{$a} <=> $sc{$b} } map { "$dir/$_" } @$arr_ref)[0]; }