http://qs321.pair.com?node_id=728689


in reply to Re: Little annoying mistakes ... of others
in thread Little annoying mistakes ... of others

This is worse:

for (my $i = 0; $i < $#names; $i++) { print $names[$i]; }

Replies are listed 'Best First'.
Re^3: Little annoying mistakes ... of others
by sasdrtx (Friar) on Dec 08, 2008 at 02:54 UTC

    Worse? That's the One True Way. However, for one-liners, horizontal alignment is preferable, i.e.:

    for (my $i = 0; $ <= @names; $i++) { print $names[$i] }

    Given the C code. Hey, sometimes Perl is useful as a C prototyper.

    sas
Re^3: Little annoying mistakes ... of others
by dragonchild (Archbishop) on Dec 11, 2008 at 20:48 UTC
    The funniest part is that all three for-loops (parent, this, and child) are wrong (which only is a great defense of the whole point). The correct versions are
    for (my $i = 0; $i <= $#names; $i++) { ... } # or for (my $i = 0; $i < @names; $i++) { ... }
    You guys had $i < $#names and $i <= @names. :-)

    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?