in reply to Perl always reads in 4K chunks and writes in 1K chunks... Loads of IO!
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';
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Perl always reads in 4K chunks and writes in 1K chunks... Loads of IO!
by ChOas (Curate) on Jan 01, 2006 at 16:48 UTC | |
by zebedee (Pilgrim) on Jan 04, 2006 at 02:01 UTC |