foundation - Inheritance without objects
package Foo; sub fooble { 42 } package Bar; sub mooble { 23 } sub hooble { 13 } package FooBar; use foundation; foundation(qw(Foo Bar)); sub hooble { 31 } print fooble(); # prints 42 print moodle(); # prints 23 print hooble(); # prints 31 (FooBar overrides hooble() from Bar) print SUPER('hooble'); # prints 13 (Bar's hooble())
Haven't drunk the OO Kool-Aid yet? Think object-oriented has something to do with Ayn Rand? Do you eat Java programmers for breakfast?
If the answer to any of those is yes, than this is the module for you! foundation adds the power of inheritance without getting into a class-war!
foundation
Simply use foundation and list which libraries symbols you wish to "inherit". It then sucks in all the symbols from those libraries into the current one.
use foundation
foundation(@libraries);
Declares what libraries you are founded on. Similar to use base.
use base
my @results = SUPER($function, @args);
Calls the named $function of the current package's foundation with the given @args.
Similar to $obj-SUPER::meth();>
$obj-
Plenty, I'm sure. This is a quick proof-of-concept knock off.
Michael G Schwern <schwern@pobox.com>
Sex, base
1 POD Error
The following errors were encountered while parsing the POD:
You forgot a '=back' before '=head1'
To install foundation, copy and paste the appropriate command in to your terminal.
cpanm
cpanm foundation
CPAN shell
perl -MCPAN -e shell install foundation
For more information on module installation, please visit the detailed CPAN module installation guide.