I'm just saying that I've run into cases where
for (split /\n/, $longstring) {
...
}
ran faster than
open my $fh, '<', \$longstring;
while (<$fh>) {
....
}
In a perfect world, they would run the same speed (or at least really close). The second one is preferred any time there's a case that you want to run it on a huge file and don't want to load $longstring all into memory at once. The second code solves both cases, but if a majority of your cases are to have it already loaded in memory, then maybe you want to write it the first way for performance.
(If I made a top-level post out of this I'd want to do all the benchmarks and different perl versions, and I'd end up researching the Perl source code and all that, which I don't have time for right now) |