use strict; use warnings; use IO::Handle; while (<>) { my $lineno = ARGV->input_line_number; # print a status message every 100 lines warn "Processing $ARGV line $lineno\n" unless $lineno % 100; # do some processing stuff } continue { close ARGV if ARGV->eof; # else input_line_number won't reset per-file }