Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: How can you sysread an entire file?

by esskar (Deacon)
on Jan 12, 2006 at 23:14 UTC ( #522842=note: print w/ replies, xml ) Need Help??


in reply to Re^2: How can you sysread an entire file?
in thread How can you sysread an entire file?

try this under windows and linux

use strict; use warnings; open(FILE, '>', 'foo.bar') or die "Daim!"; print FILE "\n"; close FILE;
under windows, the file will have a size of two bytes (\r\n)- under linux just 1 (\n) comapre it to
use strict; use warnings; open(FILE, '>', 'foo.bar') or die "Daim!"; binmode FILE; print FILE "\n"; close FILE;


Comment on Re^3: How can you sysread an entire file?
Select or Download Code
Re^4: How can you sysread an entire file?
by NeilF (Sexton) on Jan 13, 2006 at 18:33 UTC
    I'm aware of that... All my files on Windows & Unix follow that rule... What's the problem?

      I linked to a thread that discusses the bug in the two sentence paragraph in which I mentioned the bug. In some versions of Perl, sysread acts as if binmode is on, even when it's not. When binmode is on, "\n" is not the end of line marker, yet you're splitting on "\n".

      Ok, fine, you won't have a problem in Windows until it's time to chomp, when you'll find the "\r" is not being removed along with the "\n".

        I never do a chomp... Every record keeps its "\n" (at the end) and is written back out with it again.

        I don't plan on splitting the record (variable) while reading - unless there's a good reason. I'll read it all in, then split it on "\n" to put it into an array.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://522842]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (12)
As of 2014-10-22 16:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (119 votes), past polls