people call an abstract class). It allows you to explicitly declare what methods are virtual and that must be implemented by subclasses. WWW: http://search.cpan.org/dist/Class-Virtual/