Mojo::Base - Minimal base class for Mojo projects
package Cat; use Mojo::Base -base; has 'mouse'; has paws => 4; has [qw/ears eyes/] => 2; package Tiger; use Mojo::Base 'Cat'; has stripes => 42; package main; my $mew = Cat->new(mouse => 'Mickey'); say $mew->paws; say $mew->paws(5)->paws; my $rawr = Tiger->new(stripes => 23); say $rawr->ears * $rawr->stripes;
Mojo::Base is a simple base class for Mojo projects.
# Automatically enables "strict", "warnings" and Perl 5.10 features use Mojo::Base -strict; use Mojo::Base -base; use Mojo::Base 'SomeBaseClass';
All three forms save a lot of typing.
# use Mojo::Base -strict; use strict; use warnings; use feature ':5.10'; # use Mojo::Base -base; use strict; use warnings; use feature ':5.10'; use Mojo::Base; push @ISA, 'Mojo::Base'; sub has { Mojo::Base::attr(__PACKAGE__, @_) } # use Mojo::Base 'SomeBaseClass'; use strict; use warnings; use feature ':5.10'; require SomeBaseClass; push @ISA, 'SomeBaseClass'; use Mojo::Base; sub has { Mojo::Base::attr(__PACKAGE__, @_) }
Mojo::Base exports the following functions if imported with the -base flag or a base class.
-base
has
has 'name'; has [qw/name1 name2 name3/]; has name => 'foo'; has name => sub {...}; has [qw/name1 name2 name3/] => 'foo'; has [qw/name1 name2 name3/] => sub {...};
Create attributes, just like the attr method.
attr
Mojo::Base implements the following methods.
new
my $instance = BaseSubClass->new; my $instance = BaseSubClass->new(name => 'value'); my $instance = BaseSubClass->new({name => 'value'});
This base class provides a basic object constructor. You can pass it either a hash or a hash reference with attribute values.
__PACKAGE__->attr('name'); __PACKAGE__->attr([qw/name1 name2 name3/]); __PACKAGE__->attr(name => 'foo'); __PACKAGE__->attr(name => sub {...}); __PACKAGE__->attr([qw/name1 name2 name3/] => 'foo'); __PACKAGE__->attr([qw/name1 name2 name3/] => sub {...});
Create attributes. An arrayref can be used to create more than one attribute. Pass an optional second argument to set a default value, it should be a constant or a sub reference. The sub reference will be excuted at accessor read time if there's no set value.
You can set the MOJO_BASE_DEBUG environment variable to get some advanced diagnostics information printed to STDERR.
MOJO_BASE_DEBUG
STDERR
MOJO_BASE_DEBUG=1
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
To install Mojolicious, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious
CPAN shell
perl -MCPAN -e shell install Mojolicious
For more information on module installation, please visit the detailed CPAN module installation guide.