When base
tries to require a module, it will not die if it cannot find
the module's file, but will die on any other error. After all this, should
your base class be empty, containing no symbols, base
will die. This is
useful for inheriting from classes in the same file as yourself but where
the filename does not match the base module name, like so:

There is no Foo.pm, but because Foo
defines a symbol (the exclaim
subroutine), base
will not die when the require fails to load Foo.pm.

base
will also initialize the fields if one of the base classes has it.
Multiple inheritance of fields is NOT supported, if two or more base classes
each have inheritable fields the 'base' pragma will croak. See fields
for a description of this feature.