@arrayUnsorted=('page1.html', 'page11.html', 'page2.html', 'page3.html'); my @a = sort{ ($a.$b)=~/(\d*)\.htmlpage(\d*)/;$1<=>$2; } @arrayUnsorted; print "$_\n" foreach @a;