I'm surprised no one has suggested the
GRT yet. This is an ideal case for it.
my @a = <DATA>; chomp @a;
@a =
map { substr $_, 10 }
sort
map { sprintf "%10s%s", /(\d+\w{3}\d{4})/, $_ }
@a;
print join "\n", @a, '';
__DATA__
fwlog.14Mar2005.gz
fwlog.15Mar2005.gz
fwlog.16Mar2005.gz
fwlog.17Mar2005.gz
fwlog.18Mar2005.gz
fwlog.19Mar2005.gz
fwlog.1Mar2005.gz
fwlog.20Mar2005.gz
fwlog.21Mar2005.gz
fwlog.2Mar2005.gz
fwlog.3Mar2005.gz
fwlog.4Mar2005.gz
fwlog.5Mar2005.gz
fwlog.6Mar2005.gz
fwlog.7Mar2005.gz
fwlog.8Mar2005.gz
fwlog.9Mar2005.gz