Gerrit P. Haase wrote:
Hallo Rolf, Am Dienstag, 1. April 2003 um 18:13 schriebst du:
Gerrit P. Haase wrote:
Rolf schrieb:
So, is this a cygwin perl problem? Or has the stock perl decided to only work with magic ENV variables?
I don't see the problem in the latest Perl (5.9.0) and I'm trying to figure out how it can be fixed, in the meantime, please try to use the magic PERLIO=perlio setting for your environment. Gerrit
Ok, using PERLIO=perlio, but I'm still having a problem (which worked in the previous version of Perl).
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;
in (od -c in): 0000000 a b c \r \n d e f \r \n 0000012
This is on a BINMODE mount. This script outputs "0000000 a b c \n d e f \n". If I go back to prev Perl, OR remove line#2 OR remove line#6, then it outputs "0000000 a b c \n"
1. No PERLIO setting:
$ od -c in 0000000 a b c \r \n a b c \r \n 0000012
$ ./crlf.pl 2>&1 | tee log.in abc abc
$ od -c log.in 0000000 a b c \r \n a b c \r \n 0000012
2. PERLIO=perlio:
$ export PERLIO=perlio
$ ./crlf.pl 2>&1 | tee log.in abc abc
$ od -c log.in 0000000 a b c \n a b c \n 0000010
3. PERLIO=raw:
$ export PERLIO=raw
$ ./crlf.pl 2>&1 | tee log.in abc abc
$ od -c log.in 0000000 a b c \n a b c \n 0000010
4. PERLIO=stdio:
$ export PERLIO=stdio
$ ./crlf.pl 2>&1 | tee log.in abc abc
$ od -c log.in 0000000 a b c \n a b c \n 0000010
5. PERLIO=:
$ export PERLIO=
$ ./crlf.pl 2>&1 | tee log.in abc abc
$ od -c log.in 0000000 a b c \r \n a b c \r \n 0000012
Gerrit
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.
Does anybody have access to a U/Linux machine with perl 5.8 on it? Can they run that test script on it? I'd like to know if this is only a problem with cygwin-perl or with perl in general.
So, I've recieved confirmation that this problem is only with cygwin perl, and not with GNU/Linux perl (5.8).
-- 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/