Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
There's more than one way to do things
 
PerlMonks  

Re: Creating module files from subroutines

by frankus (Priest)
on Apr 17, 2001 at 10:57 UTC ( [id://73097]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Creating module files from subroutines

There are a good few conventions for making modules and, perlmod is a bit too condensed to learn it IMHO, although an excellent reference.

Sadly most of the knowledge I've gleemed on this subject is in the pages of Debugging Perl, The Perl Cookbook and Object Oriented Perl, so I can't readily submit URL's for the salient points, all these books give a well rounded look at modules and their creation and use, from different angles, with little overlap. If I had to point to one book to use, for this and other reasons it'd be the Cook Book. HTH.

Your code might benefit from indentation and you don't need the brackets around the variables being declared.

You might lessen your future efforts further by making the functions more generic, maintainable and robust:

  • Passing the list of recipients as a array reference. Try a closure so you can set up the recipients once. If it is static.
  • Consider whether prototypes are useful, in some cases you can use them to enforce correct use of your functions.
  • Add validation as far as possible. Unless this is purely for your own benefit, it is polite to inform users of why things have failed. So to that end consider returning the results from the system call.
  • Add Pod to the functions or perhaps good commenting, examples of usage, and such.

You were asking for Module specific stuff, and I fear I may be repeating things, you already know. A more precise set of goals to enable you to get `moduled' are:

  1. Learn how to set the module in a remote and common directory. @INC, use lib or -i
  2. Decide which functions are private or public. use Exporter and @Exporter
  3. Ensure your code is legible and well commented. Here is a good place to begin.
  4. Look to CPAN to see if what you're doing has already been done.

<Hint to="greater Perl Monks" type="pretty big one">It is funny that there is no tutorial for modules in Tutorials</Hint>

--
Brother Frankus.
  • Comment on Re: Creating module files from subroutines

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://73097]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.