and doing:@array = <FILE>;
and run it multiple times to make sure you're not just getting the effect of the file being cached in memory.while(<FILE>) { push(@array, $_); }
I have found that while the version with the while loop *looks* longer it actually has always run faster in the tests I've done.
PS: a die message with your open statement like
is your friend, as are:open (DF, "test.txt") || die "Can't read 'test.txt': $!\n"
at the top of your script - I'd recommend using them - they will help you by saving you time finding what's causing errors and in the long run should also help you to write better code by teaching you good habits.use strict; use warnings;
:o)
update: Thanks ChOas - I've fixed it. I always use the () brackets and || myself - and vaguely recalled (like you point out) that there *was* a difference between || and 'or'.
After having Dominus do a presentation to us the other week and finding I am in th habit of using () where I don't absolutely need to, I'd thought I'd not add them here where NeilF wasn't already using them... I've put them back on now :o)
running:
tells me I *could* write it:perl -MO=Deparse -e 'open (DF, "test.txt") || die "Cant read test.txt\ +n";'
but I won't :o)die "Can't read test.txt\n" unless open DF, 'test.txt';
In reply to Re: Perl always reads in 4K chunks and writes in 1K chunks... Loads of IO!
by serf
in thread Perl always reads in 4K chunks and writes in 1K chunks... Loads of IO!
by NeilF
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |