$ls *.xml
123_20070303_REFNUM.xml
123_20071225_REFNUM.xml
123_20080101_REFNUM.xml
923_20070227_REFNUM.xml
####
#!/usr/bin/perl
use strict;
use warnings;
use Date::Simple (':all');
use Data::Dumper;
my $dir = q{/home/LarryTheLobster/};
opendir(DIR, $dir) or die $!;
my @xml_files =
sort { d8( (split /_/, $a)[1] ) cmp d8( (split /_/, $b)[1] ) }
grep { -f and /[.]xml\z/ } readdir DIR;
closedir DIR;
print Dumper \@xml_files;
####
Output:
$VAR1 = [
'923_20070227_REFNUM.xml',
'123_20070303_REFNUM.xml',
'123_20071225_REFNUM.xml',
'123_20080101_REFNUM.xml'
];