in reply to Code for elegance, code for clarity

This squeeze through a review stuff makes me think you may be coding inappropriately for the ability level of your co-workers.

Can't resist a little nit-picking:

else { last if !defined (($_ = <>) =~ s!\n|$/!!g); } ...which reads a chunk of ARGV into $_, removes newlines, chomps, and should exit the loop it is a part of at the end of the last ARGV file, or on any chunk not containing a newline or input record separator.
That isn't warnings friendly (you'll get "Use of uninitialized value in substitution" at the end of ARGV), and you should \Q the $/.
@{$temp_hash{files}} = grep { /@(\d+)$/; $1 > $old } @{$temp_hash{files}};
Also warnings unfriendly if the data doesn't have @ and digits at the end. Better to say: /@(\d+)\z/ && $1 > $old (but use $ instead of \z if you really mean it that way.)