Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Bad line numbers .. bad!

by Jenda (Abbot)
on Jul 25, 2013 at 20:36 UTC ( #1046419=note: print w/replies, xml ) Need Help??

in reply to Bad line numbers .. bad!

Any chance some of your lines end with CRLF and some just with LF? Check the file with a hexaeditor.

Enoch was right!
Enjoy the last years of Rome.

Replies are listed 'Best First'.
Re^2: Bad line numbers .. bad!
by Eily (Vicar) on Jul 25, 2013 at 21:05 UTC

    I tried that, it was actually lines that ended only with a carriage return that didn't increment the value of __LINE__.

    It's probably what causes phramus's problem I guess. If not, I only know of two other ways to have __LINE__ (which is replaced at compile time, so should not be affected by runtime operations) corresponding to something else than what seems obvious: source filtering and the #line directive:

    package Third; use Filter::Util::Call; $\ = $/; $, = ":"; print 4, __LINE__; ## Hello BEGIN { filter_add ( sub { $status = filter_read(); $_ = "" if /^##/; +return $status; } ); } print 7, __LINE__; ## World; print 9, __LINE__; #line 42 print 11, __LINE__;

    There the source filtering removes all lines starting with two #, but it has no effect on lines before the filter function is added, even though it's in a BEGIN block. So if the problem is source filtering, it has to be from a module included earlier (in the command used to run the script for example). And well, if phramus used #line 42 like comments in his script to keep track of the line number, that's tough luck.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1046419]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2016-10-23 06:41 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (300 votes). Check out past polls.