http://qs321.pair.com?node_id=36569


in reply to How to control UNIX vs DOS line feeds in Perl

This is more of an OS issue more than Perl. If you want the same routine to run on both then I'd suggest using the $^O variable and toggling behaviour on the value.
I use Samba a lot and here's what they say about the issue in one of their Faq's

CRLF-LF Conversions We get many requests for CRLF/LF format conversion handling by samba. The problem is that there is no clean way to determine which files should / could be converted and which MUST not be. Since Unix and DOS/Windows uses alike will use .txt to represent a file containing ASCII text we can not reliably use the file extension. The same applies to the .doc extension. Samba operates around the premise that we should leave all files uncha +nged. By not implmenting CRLF/LF conversions we can not be guilty of damagin +g anyone's files. When someone comes along with a sound implementation that guarrantees +file integrity we will jump at the opportunity to implement this feature. U +ntil such time there is no prospect for action on this topic.


Replies are listed 'Best First'.
Re: Answer: How to control UNIX vs DOS line feeds in Perl
by Anonymous Monk on Nov 21, 2004 at 19:31 UTC
    Working with perl on my windows machine : $file = $ARGV[0]; chomp $file; open ( TXT , "< $file" ) or die " Could not find file : $file\n"; open ( NEW , "> $file.ttt" ); # must use binmode on the open filehandles binmode TXT; binmode NEW; while ( <TXT> ) { print NEW $_ if s/\r\n$/\n/; } print "converted to file : $file.ttt\n";