in reply to Bad line numbers .. bad!
Lines ending with either CRLF (\x0d\x0a) or LF (\x0a) are usually fine, even when mixed in the same source file. Lines ending with CR (most commonly Mac OS 9 and earlier, or just plain broken source code) will be seen as one line.
The following produces the same output for me on both Linux (5.18) and Windows (Strawberry 5.16):
use 5.010; use warnings; use autodie; for (qw<CRLF LF CR>) { say "Testing with $_ line endings:"; open my $perl, '|-', 'perl'; select $perl; local $\ = $_ eq 'CRLF' ? "\x0d\x0a" : $_ eq 'CR' ? "\x0d" : "\x0 +a"; print 'use strict;'; print 'use warnings;'; print 'print "This is line ", __LINE__, "\n\n";'; close $perl; select STDOUT; }
To see the line endings in a file, use a hex editor, or this:
use File::Slurp; $_ = read_file($ARGV[0] // $0); s/<(CR|LF)>/\\<$1\\>/g; # "Escape" existing s/\x0d/<CR>/g, s/\x0a/<LF>/g; s/((?:<CR>)?<LF>)/$1\n/g; # Add real line breaks say;
The only other thing I can think of is possibly a source filter, but if you are getting those results on a 5-line test with no source filter, scratch that.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Bad line numbers .. bad!
by phramus (Novice) on Jul 25, 2013 at 21:42 UTC | |
by AnomalousMonk (Archbishop) on Jul 25, 2013 at 22:25 UTC |