while (my $line = ) { if ( ($. % 5000) == 0) { print "Processed $. records\n"; # or, just to let them know # print "."; } ## process away } #### 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); } }