Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

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

by monarch (Priest)
on Oct 19, 2008 at 12:09 UTC ( #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 (Pope) 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
Node Status?
node history
Node Type: note [id://718047]
help
Chatterbox?
[Discipulus]: sometimes the client dies for extra content </chatter><span class="error" style="color: #cc0000">Server Error (Error ID 9162
[Discipulus]: the span is considered extra content by the parser
[Corion]: Mhmm - that would be some internal error, but I can't look into that right now as I don't have access to the logs from here ;)
[Discipulus]: ah, but it can be skipped by the client (?)
[Corion]: I think so, but I wonder what error might be there...
[Discipulus]: raining in germany? ;=)

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (12)
As of 2017-07-25 08:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (366 votes). Check out past polls.