Como posso classificar uma lista de strings por número

Um fácil, sem dúvida para você ...

Tenho uma lista de nomes de arquivos que são assim;

fw_d.log.1.gz  
through  
fw_d.log.300.gz  

Quando eu uso esse bloco de código abaixo, ele quase o classifica da maneira que eu quero, mas não exatament

#!/usr/bin/perl -w
my $basedir = "/var/log";
my @verdir = qw(fw_d);
my $fulldir;
my $configs;
my $combidir;

foreach $combidir (@verdir) {
    $fulldir = "$basedir/$combidir";
    opendir (DIR, $fulldir);
    my @files = grep { $_ ne '.' && $_ ne '..' && $_ ne 'CVS' readdir DIR;
    closedir (DIR);
    @files1 = sort {$a cmp $b}(@files);
    foreach my $configs (@files1) {
        print "Checking $configs\n";
        system("less $basedir/$combidir/$configs | grep \'.* Group = , Username = .* autheauthenticated.\' >> output.log" );
    }
}

aqui é uma saída de trecho

Checking fw_d.log  
Checking fw_d.log.1.gz  
Checking fw_d.log.10.gz  
Checking fw_d.log.100.gz  
Checking fw_d.log.101.gz  
Checking fw_d.log.102.gz  

Como você pode ver, quase parece que eu estava esperando .... Alguém tem alguma sugestão sobre a leitura ou um trecho de código que eu possa usa

Desde já, obrigado
Steve.

questionAnswers(4)

yourAnswerToTheQuestion