It seems as thought Alter::ego could be implemented in an inside-out class itself.
package Alter;
use Class::Std;
my %ref_of :ATTR;
sub ego {
my $self = shift;
if ( @_ ) {
$ref_of{ident $self} = shift;
}
return $ref_of{ident $self};
}
I looked for a test suite in your .tar.gz to show me the error of my ways, but it seems all it does is use_ok.
Implementing in terms of Class::Std reopens the thread cloning problem, but I think Object::InsideOut takes care of that. Since I haven't had to deal with threading problems, I haven't used it myself. Is a pure Perl implementation not possible? Have I missed some important feature of the module?