Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^3: CPAN Namespace Navigator: tree dump feature added.

by LanX (Saint)
on Nov 28, 2014 at 15:08 UTC ( [id://1108656]=note: print w/replies, xml ) Need Help??


in reply to Re^2: CPAN Namespace Navigator: tree dump feature added.
in thread CPAN Namespace Navigator

honestly it's not only hard to read it's using some suboptimal techniques.

about readability:
  • please consider using perltidy to reformat your code, it solves most problems afoken mentioned
  • use blank lines between logical steps, see commenting in chunks in Perl Best Practices
  • take care about naming conventions and clarity
    hasref seems to mean hash_ref but reads like a boolean has_a_reference
  • avoid deeply nested code!
    e.g. using a dispatcher like $cmd{$line}->() with %cmd=('**'=>\&dump_readme,'*'=>...)
  • prefer self commenting code, like moving code chunks into well named subs

about commenting
  • be sure which audience you are targeting whith your comments
  • you seem to mix POD stuff (i.e. for the user) and dev-comments and (sorry) banalities,
  • line quantity doesn't equal quality
about techniques:
  • your begin block is huge and I'm puzzled why (?)
  • your repeatedly looping with $_ over most of your lines, that's very vulnerable to bugs
  • &sub() in Perl5 is usable in the rare cases where you need to ignore prototypes
All these mentioned problems keep me away to read more and to try it out.

In general I'm sure you would love to have a look into Damian's PBP book.

This book helped me a lot understanding the traps in Perl and I hope it'll help you too! :)

Cheers Rolf

(addicted to the Perl Programming Language and ☆☆☆☆ :)

Updates

) if you need to check UserAgent within BEGIN, I'd consider using a second BEGIN block

2) I.e. the top-down structure is hidden

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2024-05-30 01:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found