my @files= <*>; @files= do { my @mo= ( qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec), 'a'..'l' ); my %mo; @mo{@mo}= reverse @mo; grep { s/^(.)/$mo{$1}/ } sort grep { s/^(...)/$mo{$1}/ } @files; };