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