my @l=qw[ a.log.1 a.log.5.gz a.log.2.gz a.log.6.gz a.log.9.gz a.log.11.gz
a.log.3.gz a.log.7.gz a.log.8.gz a.log.4.gz a.log a.log.10.gz];
print (sort{lsort($a)<=>lsort($b)}@l);
sub lsort{ my $c=shift; $c=~/log\.(\d+)/; return $1 if($1); return 0;}
--
>perl test.txt
a.loga.log.1a.log.2.gza.log.3.gza.log.4.gza.log.5.gza.log.6.gza.log.7.gza.log.8.gza.log.9.gza.log.10.gza.log.11.gz