package Foo::Bar; #always goes at the top! ################################################################################ # $Header:: /prject/name.pl 4 02/12/04 18:46 Author $# ($VERSION) = sprintf "%d.%03d", 1, ' $Revision:: 4 $' =~ /::\s+(\S+)/;# # $NoKeywords:: $# ################################################################################ use base qw/Some::Module/; # 'cause the relationship is important use Essential::CPAN::Modules; use Essential::NONCPAN::Modules; use Non::Essential::Modules; (ie debugging and the like) # I always use strict; use warnings; use warnings::register; # and maybe some other pragmas too use constant here=>1; use vars qw($Here $Should $We $Use $Them); BEGIN { # Any module specific initialization type stuff that must happen first. # if vars qw() have been used and they need defaults they get them here. $Here||="A default value"; } sub routines_get_defined_here { } unless (caller) { # module test/development code goes here. This is useful becuase you can then # say perl module.pm # and have it self test or devtest itself. } 1; package Virtual::Utility::Namespaces::Go::Here; 1; __END__ =pod And Pod goes here =cut