Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^5: Generate the perl sequence 1, 11, 111, ....

by monarch (Priest)
on Oct 19, 2008 at 12:09 UTC ( [id://718047]=note: print w/replies, xml ) Need Help??


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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://718047]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (2)
As of 2024-04-19 19:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found