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)
In reply to Re^4: RE on lines read from in-memory scalar is very slow
by NERDVANA
in thread RE on lines read from in-memory scalar is very slow
by Danny
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |