Let me add to that last question:
"are there any CPAN modules that use abstract classes internally?"
Spreadsheet::WriteExcel uses an abstract base class as the parent for a Workbook and a Worksheet class. There is a short description and a UML diagram here. In the section entitled "The Structure of the Module".
John.
-- Something tells me we aren't programming in Pascal anymore, Toto.