in reply to Re: How best to replicate/copy a hash of hashes
in thread How best to replicate/copy a hash of hashes
Thanks, I took you're suggestion and put the prints into the program and ran it only once and printed the \hash and 3 \keys data. The output is below. 'B:' is for before the replicate/copy and 'A:' is after. As you can see, it looks like the data has been copied to a different location. I have no idea why 'B:' says 'REF' and A: says 'SCALAR', since they are the exact same print statement only adding the T to Account to show the two different hashes.
print "\nB:Acct: ",\%Account,"\t",\$Account{"0"},"\t",\$Account{"1" +},"\t",\$Account{"10"},"\n"; { my %TAccount = (); keys( %TAccount ) = $i; foreach my $key ( keys %{ $Account{$i} } ) { $TAccount{$key} = $Account{$i}{$key}; } print "A:TAcct1: ",\%TAccount,"\t",\$TAccount{"0"},"\t",\$TAccount{"1 +"},"\t",\$TAccount{"10"},"\n"; print "\nB:Acct: ",\%Account,"\t",\$Account{"0"},"\t",\$Account{"1" +},"\t",\$Account{"10"},"\n"; { my %TAccount = %{ $Account{"$i"} }; print "A:TAcct2: ",\%TAccount,"\t",\$TAccount{"0"},"\t",\$TAccount{"1 +"},"\t",\$TAccount{"10"},"\n";
B:Acct: HASH(0x300c0120) REF(0x300e72d8) REF(0x3002fd8c) REF(0x300f4c00) A:TAcct1: HASH(0x300e70a4) SCALAR(0x301413b0) SCALAR(0x30141284) SCALAR(0x30141344) B:Acct: HASH(0x300c0120) REF(0x300e72d8) REF(0x3002fd8c) REF(0x300f4c00) A:TAcct2: HASH(0x300e7260) SCALAR(0x30141974) SCALAR(0x30141848) SCALAR(0x30141908)
Thank you
"Well done is better than well said." - Benjamin Franklin
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: How best to replicate/copy a hash of hashes
by jethro (Monsignor) on Oct 05, 2010 at 00:13 UTC | |
by flexvault (Monsignor) on Oct 05, 2010 at 11:06 UTC | |
|
Re^3: How best to replicate/copy a hash of hashes
by Marshall (Canon) on Oct 05, 2010 at 05:42 UTC | |
by flexvault (Monsignor) on Oct 05, 2010 at 11:48 UTC | |
by Marshall (Canon) on Oct 05, 2010 at 15:48 UTC |