http://qs1969.pair.com?node_id=11140331


in reply to Getting latest modified file in a directory

Is there a standard way to do it?

No but there are many ways to do it. Here is one:

#!/usr/bin/env perl use strict; use warnings; use List::Util 'reduce'; use Path::Tiny 'path'; my @files = qw/a b c/; my $dir = '/tmp/'; print newest($dir, @files) . "\n"; sub newest { my $dir = shift; my $newest = reduce { $a->stat->mtime > $b->stat->mtime ? $a : $b +} map { path "$dir/$_" } @_; return "$newest"; }

I've passed the files as an array since that is much more useful (in a generic sense) than your hashref. Feel free to modify for your own purposes, of course. If your list of files is (or might be) very long then consider a transform to avoid excessive stat calls.


🦛