use strict;
use warnings;
my @files = map{$_->[0]}
####
my @files = map{$_->[0]}
sort{
$a->[1] <=> $b->[1]
||
$a->[2] <=> $b->[2]
||
$a->[3] <=> $b->[3]
}
map{[$_,/.+?_A\.(.+?)-(.+?)-(\d+)\..+$/]};
####
print $_,$/ for @files;
__DATA__
abcd1_abc_123456.abc1a_A.201307282200-2300-1.gz
abcd1_abc_123456.abc1a_A.201307282200-2300-2.gz
abcd1_abc_123456.abc1a_A.201307282200-2300-3.gz
abcd1_abc_123456.abc1a_A.201307282200-2300-4.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-1.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-2.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-3.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-4.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-5.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-10.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-11.gz
abcd1_abc_123456.abc1a_A.201307282300-2400-12.gz
abcd1_abc_123456.abc1a_A.201307282200-2300-10.gz
abcd1_abc_123456.abc1a_A.201307282200-2300-11.gz
abcd1_abc_123456.abc1a_A.201307282200-2300-12.gz
####
foreach (@files) {
my $file = $_;