Badger::Class
package Your::Point; use Badger::Class version => 2.718, debug => 0, base => 'Badger::Base', config => 'x! y!', get_methods => 'x y', init_method => 'configure', throws => 'point', messages => { missing => 'No value specified for %s', };
Thus Spake Andy:
And this is what it looks like with a bit of Badger::Class magic. We've
already seen what version does. The debug option is a hook into
Badger::Debug's default option, so we get $DEBUG and DEBUG defined as
discussed earlier. The base option declares a base class of Badger::Base.
config hooks into the Badger::Class::Config helper module which generates
a configure() method which copies the x and y parameters into $self,
throwing an error if they're not defined (the ! suffix). The next two options
are delegated to Badger::Class::Methods which generates methods. get_methods
generates simple accessors. init_method generates an init() method, which
in this case is forwarded onto the configure() method that we just generated.
throws and messages define the $THROWS and $MESSAGES package variables
respectively. We've already seen what they do.