Source: libclass-spiffy-perl Section: perl Priority: optional Build-Depends: debhelper (>= 8) Build-Depends-Indep: perl Maintainer: Debian Perl Group Uploaders: Damyan Ivanov Standards-Version: 3.9.2 Homepage: http://search.cpan.org/dist/Class-Spiffy/ Vcs-Git: git://git.debian.org/pkg-perl/packages/libclass-spiffy-perl.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-perl/packages/libclass-spiffy-perl.git Package: libclass-spiffy-perl Architecture: all Depends: ${misc:Depends}, ${perl:Depends} Description: Spiffy Perl interface framework Class::Spiffy is a framework and methodology for doing object oriented programming in Perl. Class::Spiffy combines the best parts of Exporter.pm, base.pm, mixin.pm and SUPER.pm into one magic foundation class. It attempts to fix all the nits and warts of traditional Perl OO, in a clean, straightforward and (perhaps someday) standard way. . Class::Spiffy borrows ideas from other OO languages like Python, Ruby, Java and Perl 6. It also adds a few tricks of its own. . If you take a look on CPAN, there are a ton of OO related modules. When starting a new project, you need to pick the set of modules that makes most sense, and then you need to use those modules in each of your classes. Class::Spiffy, on the other hand, has everything you'll probably need in one module, and you only need to use it once in one of your classes. If you make Class::Spiffy the base class of the basest class in your project, Class::Spiffy will automatically pass all of its magic to all of your subclasses. You may eventually forget that you're even using it! . The most striking difference between Class::Spiffy and other Perl object oriented base classes, is that it has the ability to export things. If you create a subclass of Class::Spiffy, all the things that Class::Spiffy exports will automatically be exported by your subclass, in addition to any more things that you want to export. And if someone creates a subclass of your subclass, all of those things will be exported automatically, and so on. Think of it as "Inherited Exportation", and it uses the familiar Exporter.pm specification syntax.