start page | rating of books | rating of authors | reviews | copyrights

Perl Cookbook

Perl CookbookSearch this book
Previous: 12.17. Building and Installing a CPAN Module Chapter 12
Packages, Libraries, and Modules
Next: 12.19. Program: Finding Versions and Descriptions of Installed Modules
 

12.18. Example: Module Template

Following is the skeleton of a module. If you want to write a module of your own, you can copy this and customize it.

package Some::Module;  # must live in Some/Module.pm  use strict;  require Exporter; use vars       qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);  # set the version for version checking $VERSION     = 0.01;  @ISA         = qw(Exporter); @EXPORT      = qw(&func1 &func2 &func4); %EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],  # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK   = qw($Var1 %Hashit &func3);  use vars qw($Var1 %Hashit); # non-exported package globals go here use vars      qw(@more $stuff);  # initialize package globals, first exported ones $Var1   = ''; %Hashit = ();  # then the others (which are still accessible as $Some::Module::stuff) $stuff  = ''; @more   = ();  # all file-scoped lexicals must be created before # the functions below that use them.  # file-private lexicals go here my $priv_var    = ''; my %secret_hash = ();  # here's a file-private function as a closure, # callable as &$priv_func. my $priv_func = sub {     # stuff goes here. };  # make all your functions, whether exported or not; # remember to put something interesting in the {} stubs sub func1      { .... }    # no prototype sub func2()    { .... }    # proto'd void sub func3($$)  { .... }    # proto'd to 2 scalars  # this one isn't auto-exported, but could be called! sub func4(\%)  { .... }    # proto'd to 1 hash ref  END { }       # module clean-up code here (global destructor)  1;




Previous: 12.17. Building and Installing a CPAN Module Perl Cookbook Next: 12.19. Program: Finding Versions and Descriptions of Installed Modules
12.17. Building and Installing a CPAN Module Book Index 12.19. Program: Finding Versions and Descriptions of Installed Modules