NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
-apply_to( $obj )? (Score:1)
Re: (Score:1)
Devel::EnforceEncapsulation->apply_to($pkg);
my $obj = $pkg->new();
Devel::EnforceEncapsulation->remove_from($pkg);
The instance keeps the overload, but subsequent instantiations are not affected. The only downside to that approach is that it might blow away any deref overloads that may exist in $pkg. But that's a pretty small hazard.
Re: (Score:1)
Re: (Score:1)
Changing my mind (Score:2)
After giving it a lot of thought, I'm thinking now that Class::Encapsulate might seem like a good idea, but it's probably more trouble than it's worth. I think that your plan of applying it at runtime for development is probably a cleaner way to go.
Re: (Score:1)
In typical Linus style that statement is harsher than it need
deja vu, kind of... (Score:2)
Re: (Score:1)
The key difference between our implementations are:
* Mine applies externally post-facto, yours from inside the code
* Mine allows access from sub/superclasses, yours does not (deliberately!)
* Mine supports all of overload.pm's dereferencers, yours supports %,@,$, and &.
* Mine allows access from anything in the same package, yours allows access