#!/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"; }