Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

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

by dHarry (Abbot)
on Oct 10, 2008 at 08:00 UTC ( #716378=note: print w/ replies, xml ) Need Help??


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

Is there some name for this kind of sequence

1 liner :-)


Comment on Re^2: Generate the perl sequence 1, 11, 111, ....
Re^3: Generate the perl sequence 1, 11, 111, ....
by matrixmadhan (Beadle) on Oct 10, 2008 at 08:24 UTC
    Hello all, This is my very first post/reply to perlmonks.org :)
    my $one_literal = "1"; my $counter = 1; while ( 1 ) { for ( my $i = 1; $i <= $counter; $i++ ) { printf "$one_literal"; } printf "\n"; $counter++; }
      Do you mind if I offer a critique? There are a few minor points that could be improved.
      • If all that $one_literal can contain is "1", then the variable isn't needed.
        If $one_literal can contain something other than "1", then it's misnamed.

      • Speaking of being misnamed, $one_literal doesn't contain a literal. It contains a string. String literals are pieces of source code that get compiled into strings. They don't exist anywhere but in source code.

      • The first argument of printf is a formatting string. Using it to print arbitrary string is a trap waiting to be sprung. Instead, use print or printf('%s', ...).

      • The C syntax for "for" loops (for ( my $i = 1; $i <= $counter; $i++ )) is much more complex than alternative syntax Perl provides (for my $i ( 1..$counter )). That makes it more error-prone and harder to parse mentally (small variations will be obscured).

        No, I don't mind at all. In fact, I would be glad to correct my mistakes and improve perl coding.

        "That makes it more error-prone" - Did you mean the C style for loop syntax. I don't understand why that would be error-prone ?
        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.

      Hello all, This is my very first post/reply to perlmonks.org :)

      I personally believe, then, in addition to the Perl-specific points addressed by ikegami (which I was about to point out myself...) that as a behavioural rule you should have posted your reply not as a comment to a more or less random entry of this thread, but as one to the root node because it anwers the latter not the former.

      --
      If you can't understand the incipit, then please check the IPB Campaign.
        Please pardon my ignorance. Only after replying to another reply - I realized that I should not have done that instead it should have been a direct reply. In most of the forums there isn't any concept of direct/indirect replies, so I was not aware of that. Next time, I will make sure about direct or indirect reply accordingly before posting. Sorry again.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (12)
As of 2014-12-18 21:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (66 votes), past polls