my $ref = {thing => 'value', otherthing => 'other'};
%alias_to_ref = ;# insert magical code here
# to create a hash which will
# still modify $ref
$alias_to_ref{thing} = 'newvalue';
print $ref->{thing};
And have that output 'newvalue'? If that is what you want, you probably could do it with a tied hash. See Below:
#!/usr/local/bin/perl -w
use strict;
my($ash) = {thing => 'other', and => 'antoher'};
my(%hash);
tie %hash, 'MyHash', $ash;
$hash{thing} = 'new';
print $ash->{thing}."\n";
package MyHash;
require Tie::Hash;
@MyHash::ISA = qw(Tie::StdHash);
sub STORE
{
my $me = shift;
my $key = shift;
$me->{$key} = shift;
}
sub TIEHASH
{
my $package = shift;
my $ref = shift;
return bless($ref, $package);
}
This outputs 'new'.
May the Force be with you
|