Code:
#!/usr/bin/perl
use strict;
my %sortlist;
my @files;
my $file;
opendir(DIR, $ARGV[0]) or die "can't opendir $ARGV[0]: $!";
@files = readdir(DIR);
closedir DIR;
foreach $file (@files) {
next if($file eq '.' or $file eq '..');
my @data = split(/\s*[-\.]\s*/,$file);
$sortlist{"$data[3]$data[2]$data[0]$data[1]"} = $ARGV[0] . "/" . $file;
}
foreach (reverse sort keys %sortlist) {
print $sortlist{$_} . "\n";
}