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).
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.
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.
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 nodebecause it anwers the latter not the former.
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.