Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: How to change referent of lexical reference?

by sandfly (Beadle)
on Sep 21, 2003 at 22:57 UTC ( [id://293047]=note: print w/replies, xml ) Need Help??


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:

{ 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"; }
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.

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 fact, I specifically want to avoid cloning, because for a given set of unique attributes (in this case, a database table primary key), I don't want there to be more than one object representing that unique row.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://293047]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2024-04-19 07:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found