I am a huge proponent of sttaus messages, but with text files, to do a percent you would have to first get the number of lines (which on large data is a waste). I tend to do the following for text data :
while (my $line = <INFILE>) {
if ( ($. % 5000) == 0) {
print "Processed $. records\n";
# or, just to let them know
# print ".";
}
## process away
}
Now, being Mr. Binary-data-can-be-done-with-perl, i tend to do alot of binary op's on files, and for that you can do (this is untested, but mostly just to show the idea):
my $TOTAL = (-s $FILE);
while (read(INFILE,$buf,$bufsize)) {
## do work
$BYTES_READ+=$bufsize;
if ( ($BYTES_READ % 5000) == 0) {
printf("%.3f %% (%d of %d)\n",($BYTES_READ/$TOTAL)*100,$BYTES_
+READ,$TOTAL);
}
}
my own worst enemy
-- MZSanford
|