my $first = 'run_this_first'; # or whatever @filenames = sort { ($b eq $first) cmp ($a eq $first) || -M $b <=> -M $a } @filenames; #### my %modtimes; $modtimes{$_} = -M $_ foreach @filenames; $modtimes{$first} = 1e99; @filenames = sort { $modtimes{$b} <=> $modtimes{$a} } @filenames;