use File::Spec::Functions qw/no_upwards catfile/; opendir my $dh, $dirname or die "$dirname: $!"; my @files = grep {-f} map {catfile $dirname, $_} sort +no_upwards readdir $dh; closedir $dh;