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]