foundation - Inheritance without objects


foundation documentation  | view source Contained in the foundation distribution.

Index


NAME

Top

foundation - Inheritance without objects

SYNOPSIS

Top

  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())




DESCRIPTION

Top

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!

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.

Functions

foundation
  foundation(@libraries);

Declares what libraries you are founded on. Similar to use base.

SUPER
  my @results = SUPER($function, @args);

Calls the named $function of the current package's foundation with the given @args.

Similar to $obj-SUPER::meth();>

BUGS

Top

Plenty, I'm sure. This is a quick proof-of-concept knock off.

AUTHOR

Top

Michael G Schwern <schwern@pobox.com>

SEE ALSO

Top

Sex, base


foundation documentation  | view source Contained in the foundation distribution.