Perl does not stop reading a file at a newline and have to go back out each time it encounters a newline. It reads to a buffer and each readline is taken from that buffer. The disk is not read again until the buffer is exhausted. You are showing one way of changing the buffer size. I used a different method $/ = \65536; Depending on what data munging is going on inbetween each readline and how big the file is can determine if you should use sysreads with a specified buffer as you have shown, or change the input record seperator $/, or use combination of both.
The only reason I clarify here is because I can see some inexperienced monks think that while <FILE> {}; as being inefficient, prematurely optimize, and end up with a headache back here asking for advice.
Cheers - L~R
In reply to Re: Re: Re: Write contents of a file, whilst reading from another file
by Limbic~Region
in thread Write contents of a file, whilst reading from another file
by spiderbo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |