Nah, it's a hack. Useful, but still a hack. Why?
- Before even using objects (in the bless sense), a Perl programmer already has to understand references, packages, and complex datastructures. Java programmers create their first object when they write a "Hello, World!"
- Lack of a good way of doing protected methods/attributes (many people think that doing private data can't be done, but it's do-able using lexicals declared at the top of the package)
- No subroutine prototypes (well, no useful subroutine prototypes, especially in terms of objects)
- No compile-time checking of method lookups, which consequently makes it:
- Slow
- Unable to inline constant methods
- Impossible for use strict 'subs'; to help you
- Generally makes it easy to do objects wrong
----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer
: () { :|:& };:
Note: All code is untested, unless otherwise stated