in reply to How to change referent of lexical reference?
I had a similar experience with Storable. Is there a big problem with simply cloning bar: %$ref = %$bar?
Alternatively, what about making $ref into a proxy for $bar:
This code is untested, but I've had success with similar techniques. It assumes that $ref is a hash reference-type object, and that you never access the contents of the hash directly.{ package Proxy; our $AUTOLOAD; sub AUTOLOAD { my $self = shift; my $name = $AUTOLOAD; $name =~ s/.*://; return if $name eq 'DESTROY'; $self->{bar}->$name(@_); } sub isa { (shift)->{bar}->isa(@_) } sub can { (shift)->{bar}->can(@_) } } sub some_sub { my $ref = shift; %$ref = (bar => $bar); bless $ref, "Proxy"; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: How to change referent of lexical reference?
by autarch (Hermit) on Sep 22, 2003 at 03:26 UTC |
In Section
Seekers of Perl Wisdom