Handwaving fish.
my @candidate_files = obtain_candidates( ); ## File::Find::Rule, opend
+ir/readdir, ...
my %seen_files;
my @to_delete;
for my $file ( @candidate_files ) {
## regex out, use str2date, yadda yadda yadda
my( $real_file, $date ) = parse_filename( $file );
if( not exists $seen_files{ $real_file } ) {
$seen_files{ $real_file } = [ $file, $date ];
} else {
my $prior_date = $seen_files{ $real_file }->[1];
if( $date - $prior_date > 0 ) {
$seen_files{ $real_file } = [ $file, $date ];
} else {
push @to_delete, $file;
}
}
}
process_deletions( @to_delete );
The cake is a lie.
The cake is a lie.
The cake is a lie.