Even though proxy methods can provide a more convenient approach to making
more struct-like classes than tediously coding up data methods as
functions, it still leaves a bit to be desired. For one thing, it means you
have to handle bogus calls that you don't mean to trap via your proxy. It
also means you have to be quite careful when dealing with inheritance, as
detailed above.
Perl programmers have responded to this by creating several different class construction classes. These metaclasses are classes that create other classes.
A couple worth looking at are Class::Template and Alias. These and other related metaclasses can be found in the modules directory on
CPAN.