Object::Interface README
for version 1.0

Object::Interface is a module whose sole purpose in life is to allow "pure
virtual base classes" in Perl.  I wrote this module because when developing
a program, I thought it would be nice to have compile-time checking for
this rather than run-time checking.  (I previously implemented an interface
or abstract base class as a module whose AUTOLOAD method checked for
unhandled calls to specific methods.  Needless to say, this was less than

You can use Object::Interface like this:

  package BaseClass;

  use Object::Interface qw( func1 func2 func3 );

Now any modules that specify inheriting from BaseClass must define methods
func1, func2, and func3 or a compile error occurs.

(I originally had a way to invoke Object::Interface via require, e.g.

  package BaseClass;

  require Object::Interface;

and all methods in BaseClass would automatically be required, but I figured
people wouldn't use it that much and it made the use invocation slower and
more unwieldy.)

Admittedly, this isn't exactly a very flashy module, but one you can take
for granted.

I hope you find it useful.  Send comments or gripes my way.

Gerad Welch [::G]