| [reply] [Watch: Dir/Any] [d/l] |
Well, if you consider arrays to be circular, if $x == 0, then $arr[$x - 1] is the last element. Which would be just right. Unfortunally, it doesn't work the way. $arr[$#arr + 1] isn't the same as $arr[0].
| [reply] [Watch: Dir/Any] [d/l] [select] |
You say that for my $x (0 .. $#arr) is "better" than for (my $x = 0; $x < @arr; $x ++). Now, I don't care much what you find better, but since you have a preference that you find important enough to advocate, I'm interested in why you find your preference "better".
It's even optimized to not create the list.
Yeah, because it's special cased. The C-style loop doesn't create a list at all, and is even "optimized" in older versions of Perl. | [reply] [Watch: Dir/Any] [d/l] [select] |
I'm interested in why you find your preference "better".
The OP asked for something Perl-ish, so anything more Perl-ish than the C-ish code he provided is better in this context. Since C doesn't have the .. operator, this qualifies.
I also think it's more readable. Instead of having to deal with three expressions, three operators and a keyword inside for's parens, the solution I presented has one operator. The iterator's decleration is even sperated from the bounds for extra readability.
Yeah, because it's special cased. The C-style loop doesn't create a list at all, and is even "optimized" in older versions of Perl.
My point was that the performance isn't any worse than the C version, contrary to what I once thought, and contrary to what many probably think.
| [reply] [Watch: Dir/Any] [d/l] [select] |