Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Injected-Via-Gmane: http://gmane.org/ To: cygwin AT cygwin DOT com From: Rolf Campbell Subject: Re: Updated: perl-5.8.0-2 Date: Wed, 02 Apr 2003 16:03:55 -0500 Lines: 120 Message-ID: References: <83040F98B407E6428FEC18AC720F5D732DB804 AT exchange DOT tropicnetworks DOT com> <121-156912388 DOT 20030401120153 AT familiehaase DOT de> <182578293952 DOT 20030402073253 AT familiehaase DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet AT main DOT gmane DOT org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3) Gecko/20030312 X-Accept-Language: en-us, en In-Reply-To: <182578293952.20030402073253@familiehaase.de> 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, ">5: die "Could not open log.\n"; >>6:binmode LOG, ":crlf"; >>7: >>8:$in = ; >>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. -- 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/