in reply to Re^2: Sorting through a rollover
in thread Sorting through a rollover

Well if anyone was interested, this is what I did to correct my issue:
Orignal Code Snipet
opendir(CacheDir,$Cache) || die "Couldn't open the directory $Cache: $ +!\n"; @filelist=grep { /[0-9]{5}/ } readdir(CacheDir); closedir(CacheDir); @sortlist=sort {$b <=> $a} @filelist; for ($i=0;$i<$MsgCount;$i++) { $filename=$sortlist[$i]; if ($filename) { open(ITEM,"$Cache/$filename");

New Code
opendir(CacheDir,$Cache) || die "Couldn't open the directory $Cache: $ +!\n"; @filelist=grep { /[0-9]{5}/ } readdir(CacheDir); closedir(CacheDir); $z=0; while($filelist[$z]){ if ($filelist[$z] =~ /[0][0][0-1][0-9][0-9]/){ $bigfilelist[$z]=int($filelist[$z]+100000); } 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; if ($filename) { open(ITEM,"$Cache/$filename");

Again I wanted to thank everyone for their input, I still learned a few things that I will use in the future.
Danny

Replies are listed 'Best First'.
Re^4: Sorting through a rollover
by onegative (Scribe) on Feb 11, 2005 at 19:56 UTC
    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