Simple base package from which to inherit
package My::Package; use base qw{Package::New}; #provides new and initialize
The Package::New object provides a consistent constructor for objects.
I find that I always need these two methods in every package that I build. I plan to use this package as the base for all of my \s-1CPAN\s0 packages.
I recommend that you have sane default for all of your object properties. I recommend using code like this.
sub myproperty { my $self=shift; $self->{"myproperty"}=shift if @_; $self->{"myproperty"}="Default Value" unless defined $self->{"myproperty"}; return $self->{"myproperty"}; }
I recommend to always use strict, warnings and our version.
package My::Package; use base qw{Package::New}; use strict; use warnings; our $VERSION='0.01';
I recommend Lazy Loading where you can.
sub mymethod { my $self=shift; $self->load unless $self->loaded; return $self->{"mymethod"}; }
my $obj = Package::New->new(key=>$value, ...);
You can override this method in your package if you need to do something after construction. But, lazy loading may be a better option.
Log on \s-1RT\s0 and contact the author.
DavisNetworks.com provides support services for all Perl applications including this package.
Michael R. Davis CPAN ID: MRDVT DavisNetworks.com http://www.DavisNetworks.com/
This program is free software licensed under the...
The BSD License
The full text of the license can be found in the \s-1LICENSE\s0 file included with this module.
base, parent
Package::Base, Class::Base, Class::Easy, Object::Tiny
Moose, (as well as Moose-alikes Moo, Mouse), Class::Accessor, Class::Accessor::Fast, Class::MethodMaker, Class::Meta
Spiffy, mixin, \s-1SUPER\s0, Class::Trait, Class::C3, Moose::Role