我想备份哈希,保留原始哈希,并使用备份的哈希数据。
并删除了备份哈希数据。
但是,原始哈希数据已被删除。
这是代码。
my %hash = (
'data1' => {
'data2' => {
'data3' => 'one',
},
},
);
foreach (1..3) {
my %hash_backup = %hash;
print $hash{'data1'}->{'data2'}->{'data3'},"\n";
print $hash_backup{'data1'}->{'data2'}->{'data3'},"\n";
print "-------------------------------\n";
delete $hash_backup{'data1'}->{'data2'};
print $hash{'data1'}->{'data2'}->{'data3'},"\n";
print $hash_backup{'data1'}->{'data2'}->{'data3'},"\n";
print "================================\n";
}
结果,
one
one
-------------------------------
================================
-------------------------------
================================
-------------------------------
================================
如果更改删除代码,则可以正常工作。
delete $hash_backup{'data1'};
结果,
one
one
-------------------------------
one
================================
one
one
-------------------------------
one
================================
one
one
-------------------------------
one
================================
我认为这是一个哈希引用问题。
如何保留原始哈希值并删除备份哈希值?
最佳答案
关于perl - Perl 中的哈希复制和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831162/