Likewise. for(;;) is a dirty C trick that doesnt really belong in perl. Especially when the replacement is easier to understand, less prone to error and most importantly more efficient.Oh, really? A significant part of Perl comes from C, shell, AWK, Ada, BASIC, Python, Fortran, and other languages. Why is for (;;) a dirty C trick that doesn't really belong in Perl, and why isn't for $var (@array) a dirty AWK trick that doesn't belong in Perl? Leave it to the villains of "Harry Potter and the Secret Chamber" to strive for "pure blood".
I also disagree with your other claims. I'm not convinced that the replacement is easier to understand, less prone to error, and more efficient. Let's consider the "dirty C trick":
for (my $i = 0; $i < 1000000; $i += 2) {$sum += $i}
The AWK-like replacement would be:
for my $i (map {$_ * 2} 0 .. 1000000 / 2) {$sum += $i}
I don't think that's easier to understand, or less prone to error. As for efficientcy:
#!/usr/bin/perl use strict; use warnings; use Benchmark; timethese -10, { C => 'my $sum; for (my $i = 0; $i < 1000000; $i += 2) {$sum += + $i}', AWK => 'my $sum; for my $i (map {$_ * 2} 0 .. 1000000 / 2) {$sum + += $i}' }; __END__ Benchmark: running C, AWK for at least 10 CPU seconds... C: 10 wallclock secs (10.66 usr + 0.00 sys = 10.66 CPU) @ 1.41/ +s (n=15) AWK: 10 wallclock secs (10.08 usr + 0.00 sys = 10.08 CPU) @ 0.69/ +s (n=7)
Abigail
In reply to Re: extracting corresponding values from another array
by Abigail-II
in thread extracting corresponding values from another array
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |