in reply to Re^4: Generate the perl sequence 1, 11, 111, ....
in thread Generate the perl sequence 1, 11, 111, ....

I would agree with the printf being a trap without a formatting string. However I would disagree that C-style for loops are more error-prone than the double-dot operator. I disagree, however, that c-style loops are harder to understand.

I personally find it much harder to mentally parse the for my $i ( 1 .. $counter ) because it forces me to remember whether the .. operator is a toggle or a list generator, and then I have to wonder if list generation is less efficient than the C-style comparison and increment operators.

Replies are listed 'Best First'.
Re^6: Generate the perl sequence 1, 11, 111, ....
by ikegami (Patriarch) on Oct 19, 2008 at 16:41 UTC

    C-style loops typically involve 3 variables, 3 operators plus "my" and 2 constants.
    Perl-style loops typically involve 1 variable, 0 operators plus "my" and 2 constants.

    Aside from the studies showing a relation between code length and the chance of there being a bug, aside from my personal experience of C-style loops being one of the biggest source of bugs, I don't see how you can argue that something that has so many more elements to parse is easier to read.

    it forces me to remember whether the .. operator is a toggle or a list generator

    Well that's simple. The .. operator is always used to generate a list.