Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

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, ....
Replies are listed 'Best First'.
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 :)
    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 :)

      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?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (14)
As of 2015-12-01 16:30 GMT
Find Nodes?
    Voting Booth?

    My keyboard shows this many letters:

    Results (20 votes), past polls