Here's my horrible confession. We often hear that you can program Perl to resemble your favorite programming language/style. C-style for loops are the classic example:

for ( my $i = 0; $i < @array; $i++ ) { ... }

We're admonished to avoid that, if possible, due to classic "off by one" errors.

my @array = qw/ zero one two three four /; for ( my $i = 0; $i < $#array; $i++ ) { print $array[$i],$/; }

LISP programmers appreciating the aesthetics of the Schwartzian Transform is another example.

Confession time: I used to be a COBOL programmer. Oh, I used strict, warnings, taint checking, and whatever else I thought was "good", but I had a bad habit of writing my subroutines "COBOL-style", with the exception of passing in the arguments.

sub foo { my $arg = shift; foreach my $data ( @data ) { $bar[ $data ] += $arg; } }

I know better now, but it took me a long time to see the error of my ways :(

Cheers,
Ovid

Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.


In reply to Re: Perl aesthetics: the good, the bad, the ugly. by Ovid
in thread Perl aesthetics: the good, the bad, the ugly. by vladb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.