OK, I was wrong the first time...
$flag="";
$flag = grep {/[0][0][0-1][0-9][0-9]/} @filelist;
$flag2 = grep {/[9][9][8-9][0-9][0-9]/} @filelist;
if ( $flag && $flag2 ){
$FLAG=1;
}
else{
$FLAG=0;
}
$z=0;
while($filelist[$z]){
if ($FLAG eq 1 ){
if ($filelist[$z] =~ /[0][0][0-1][0-9][0-9]/){
$bigfilelist[$z]=int($filelist[$z]+100000);
}
else{
$bigfilelist[$z]=$filelist[$z];
}
++$z;
}
else{
$bigfilelist[$z]=$filelist[$z];
++$z;
}
}
@sortlist=sort {$b <=> $a} @bigfilelist;
$i=0;
while($sortlist[$i]){
$filename=int($sortlist[$i]);
if($filename > 100000){
$filename=int($filename-100000);
}
else{
$filename=int($filename);
}
$filename=sprintf("%05d", $filename);
++$i;
This is definatley correct, tested, verified. Oh well...Danny