Perl - 如何使用元素数组作为键创建动态多级哈希

Perl - how to create dynamic multi level hash using array of elements as keys

我喜欢通过使用存储元素的数组来创建多级散列以形成多级键。示例:

@elements = ('level1','level2','level3');

想要这样的东西:

$hashdata{level1}{level2}{level3} = 'store anything i want';

有什么东西可以轻松做到这一点吗?包裹?

谢谢

最著名的工具可能是 Data::Diver

use warnings;
use strict;    
use Data::Dump qw(dd);

use Data::Diver qw(DiveVal);

my @elems = qw(lev1 lev2 lev3);

my %hash;

DiveVal(\%hash, @elems) = "value";

dd \%hash;

DiveVal 是一个 lvalue subroutine(可以分配给),它会在可以时自动激活。