Perl 合并哈希

标签 perl hash hashref

是否可以像这样合并两个散列:

%one = {
    name    => 'a',
    address => 'b'
};

%two = {
    testval => 'hello',
    newval  => 'bye'        
};

$one{location} = %two;

所以结束哈希看起来像这样:

%one = {
    name    => 'a',
    address => 'b',
    location => {
        testval => 'hello',
        newval  => 'bye'
    }
}

我看过了,但不确定是否可以在没有 for 循环的情况下完成。谢谢:)

最佳答案

因为散列元素的值是标量,所以不能将散列存储在散列中,但是可以存储对散列的引用。 (存储数组和存储到数组中也是如此。)

my %one = (
   name    => 'a',
   address => 'b',
);

my %two = (
   testval => 'hello',
   newval  => 'bye',     
);

$one{location} = \%two;

相同
my %one = (
   name    => 'a',
   address => 'b',
   location => {
      testval => 'hello',
      newval  => 'bye',
   },
);

关于Perl 合并哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22357629/

相关文章:

perl - hashref 查找中的语法错误,看不出原因

java - Perl 和 Java 中的多重继承是否相同?

java - 与纸牌游戏进行映射?

C++ - 类似于boost::serialization的对象图哈希值

perl - 如何从 Perl hashref 中提取多个值?

perl - 引用键的参数类型必须是 unbless

perl - 如何模拟 Moose 对象?

mysql - 使用 MySQL/Perl DBI 进行异步查询

perl - 为什么 Test::Spelling 将函数/方法名称标记为有拼写错误?

ruby - 使用散列来区分正数、奇数、偶数和负数