Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: Sorting through a rollover

by onegative (Scribe)
on Feb 11, 2005 at 13:52 UTC ( [id://430093]=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://430093]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-04-24 05:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found