Subclassing Badger::Base
package Your::Point; use base 'Badger::Base'; sub init { my ($self, $config) = @_; $self->{ x } = $config->{ x }; $self->{ y } = $config->{ y }; return $self; } sub x { $_[0]->{ x } } sub y { $_[0]->{ y } }
Thus Spake Andy:
If you've ever used Class::Base
(or Template::Base
) then you'll know the
score here. You typically inherit the new()
method and write your own init()
method. This separates object construction from object initialisation and is
usually considered to be a Good Thing™.
The example shows a simple point class for storing an x
and y
values.
The init()
method simply copies the values from the configuration parameters
into $self
. We also provide a couple of (ugly, but fast) accessor methods
just to show what they look like when raw.