# ... my $lineNum; sub SetLineNum { $lineNum= 1+(caller(0))[2]; } while( ) { $lineNum++; # ... eval "\n#line $lineNum $0\n$_\n; 1" or die $@; # ... } # ... BEGIN { SetLineNum } __END__ # ...