a-la-Class::Struct, with exported functions that install accessors by means of evalPerhaps, but Class::Struct may not be the best module to base your OO interface on since it's intent is to implement C structs in Perl. That and eval is evil ;)
using subroutine attributes, and perhaps variable attributes (still experimental in 5.8?)It'd certainly look very nice syntatically, but I believe attributes are still somewhat of a grey area (esp. for variables).
installing methods on the fly using AUTOLOAD and *{$AUTOLOAD} = sub { do { this() and that() } } ;This is certainly a nice way of generating accessor methods if somewhat heavy-handed (*anything* could be an accessor).
Unfortunately there is a fundamental flaw to this whole approach - it is *impossible* to have truly encapsulated classes in Perl without taking advantage of lexical scoping. So while closures may look like an abberation in your otherwise pristine code, it may be a necessity to achieve your goal of true encapsulation. I think I'll write a meditation on the whole subject of encapsulation in perl in the next week or so.
HTH
_________
broquaint
In reply to Re: Re: Re: Looking for exportable privacy and protection
by broquaint
in thread Looking for exportable privacy and protection
by bronto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |