From: A. Pagaltzis [EMAIL PROTECTED]
> And then there's accessor/mutator generation.. ie what
> ::MethodMaker does. Which there seems to be no easy way to do
> (with lexicals) using inside out objects..
Wouldn't this do what you want (roughly, it may not actually compile...)
use Scalar::Util qw(refaddr);
{
my %attribs;
sub make_attr {
my $class = shift;
my $attr = shift;
my $full = "${class}::${attr}";
my $sub = sub {
my $s=shift;
if (@_) {
$attribs{$full}->{refaddr($s)}=shift;
return $s;
} else {
return $attribs{$full}->{refaddr($s)};
}
}
*{$full} = $sub;
}
}
obviously you'd add an import method to make it nice to use too,
F
--------------------------------------------------------------------
mail2web - Check your email from the web at
http://mail2web.com/ .