Object::Interface README
for version 1.1


About Object::Interface
_______________________

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.


Fixes From Version 1.0
______________________

This version for Perl 5.6 actually works as advertised -- the previous
one for some unfathomable reason worked when I was running my tests, and it
shouldn't have been.  The problem was that the module was being called as a
BEGIN, before the symbols in the rest of the dependent module had been
read.  Thus, prototypes for abstract methods before the use statement were
necessary, an ugly stopgap solution.  With Perl 5.6, the special CHECK sub
provides the post-compile hook needed to make Object::Interface function
work like I intended it to.


Usage
_____

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.


Other Stuff
___________

(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 much.  I've been thinking about re-adding it,
however.)

Admittedly, this isn't exactly a very flashy module, but hopefully one you
can just use take for granted.  Note that you should probably comment out
the use Object::Interface statement in your base class module after you've
got the bugs worked out, since Object::Interface does execute at runtime.

I hope you find it useful.  If you have any suggestions or comments, please
send them my way.


Gerad Welch [::G]
<welch.119@osu.edu>