This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Updated: perl-5.8.0-2


Gerrit P. Haase wrote:
Hallo Rolf,
TEST.PL:
1:#!/bin/perl
2:$/ = "\r\n";
3:
4:open( LOG, "<in" ) ||
5:  die "Could not open log.\n";
6:binmode LOG, ":crlf";
7:
8:$in = <LOG>;
9:print $in;
Ok, so you get the same results as me. They are both wrong. The script should only print the first line.


I just tried something, I made a file like this: "0000000 a b c \r \r \n d e f \r \r \n". Then the perl script shows only the first line.


In 5.6: setting 'binmode LOG, ":crlf";' would set the line-separator to "\r\n".
In 5.8: setting 'binmode LOG, ":crlf";' sets the line-separator to "\r" + $/. So, given that I've already set the line-separator to "\r\n" it ends up as "\r\r\n" for that file.

What about removing line #6 and let Perl do the conversion: Gerrit

I know that there are ways to write the script so that it avoids the problem. I've converted the script into python anyways (partially because of this problem). So, it's not like this problem is halting my work or anything, I just think it's strange that cygwin perl operates differently than Linux perl (when run on a bin-mode mount).


I just wanted to point out this bug in the cygwin port.

-Rolf



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]