Perl 5.6.1: Problem with CRLF/LF conversions

Mikael Hubsch mikael.hubsch@tfstech.com
Tue Nov 5 05:41:00 GMT 2002


I'm trying to port a framework of perl scripts to cygwin. I'm running
cygwin 1.3.14 on WinXP. The problem is that perl seems to assume binmode
whenever I read a file, but text mode when I write to one.

The sample code below shows the problem.
If I write a line to a file with a LF-only ending, perl (or cygwin) adds a
CR. When I later read the same line from the file the CR isn't removed.

Is there some special option I need to set to make perl always assume text
mode unless I explicitly use the binmode command?


#!/usr/bin/perl -w

open(F, "> foobar.txt") || die "Cannot create foobar.txt";
print F "Line1\n";
print F "Line2\n";
close F;

open(F, "< foobar.txt") || die "Cannot open foobar.txt";
while (<F>) {
    s/(.)/sprintf("%02x ", ord($1))/ges;
    print "$_\n";
}
close F;

exit 0;

-- 
 Mikael Hubsch                 Email: Mikael.Hubsch@tfstech.com
 TFS Technology AB             Phone: +46-8-7259730
 Box 10020                     Fax:   +46-8-6494970
 S-121 26 STOCKHOLM, SWEDEN




--
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/



More information about the Cygwin mailing list