【发布时间】:2021-09-06 17:50:45
【问题描述】:
我正在尝试在 Perl 中合并两个祝福哈希。
我正在运行以下代码:
#!usr/bin/perl
use strict;
use warnings;
use Hash::Merge;
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
my $hash1 = bless( {
'CalcPorts' => {
'helper_1' => {
'Scope' => [
''
],
},
'helper_2' => {
'Scope' => [
''
],
},
},
}, 'IB' );
my $hash2 = bless( {
'CalcPorts' => {
'helper_2' => {
'Scope' => [
'd'
],
},
},
}, 'IB' );
my $merger = Hash::Merge->new('LEFT_PRECEDENT');
my $hash3 = $merger->merge($hash2, $hash1);
print Dumper($hash3);
输出是这样的:
$VAR1 = bless( {
'CalcPorts' => {
'helper_2' => {
'Scope' => [
'd'
]
}
}
}, 'IB' );
即使我预计“helper_1”会在那里...... 任何想法我做错了什么? 谢谢你的帮助:)
【问题讨论】:
-
它似乎根本没有合并祝福哈希,尝试将 $hash1 中的顶部键更改为不同的字符串。但是,如果您删除 bless,它就会开始工作。
-
但是我需要它和祝福一起工作......如果我删除了祝福,我需要在我完成合并时想办法将它归还......并且到处都是祝福哈希值
-
我想说:对你来说,它们仍然是哈希,但一旦为 Hash::Merge 祝福,它们可能只是另一种不受支持的数据类型。