Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Modules to reduce syntax?

by kcott (Archbishop)
on Dec 22, 2021 at 14:29 UTC ( [id://11139829]=note: print w/replies, xml ) Need Help??


in reply to Modules to reduce syntax?

G'day sectokia,

I often see code that does seem to have the "can't see the woods for the trees" problem. Much of that can usually be mitigated by a better understanding of the syntax that currently exists. Some examples:

  • Unnecessary quotes: $ref->{'foo'}{$bar} vs. $ref->{foo}{$bar}
  • Unnecessary dereferencing: $ref->{x}->[$i]->{$y} vs. $ref->{x}[$i]{$y}
  • Unnecessary parentheses to fix precedence issues: open(my $fh, '<', $file) || die vs. open my $fh, '<', $file or die

Finding ways to removed sigils is, in my opinion, a rather pointless exercise. It's extra work up-front and results in code that looks like it's from a different language: reduces readability; by extension, reduces maintainability; and makes the code more error-prone.

Removing whitespace, because Perl doesn't need it, has much the same effect as using too much punctuation: itcanmakeitverydifficulttoreadthecode.

Avoid excessive comments by using meaningful names. Good:

$grand_total += $sub_total;

Less good:

# Add the current sub-total to the grand-total $x += $y;

There are many more examples; these just came to mind as I was writing this post. You'd be better off spending time learning more about the existing syntax than learning a new, syntax-reducing module.

— Ken

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2025-05-12 02:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.