Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

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

by LanX (Cardinal)
on Nov 28, 2014 at 15:08 UTC ( #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
Node Status?
node history
Node Type: note [id://1108656]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (4)
As of 2021-06-22 01:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)












    Results (100 votes). Check out past polls.

    Notices?