首页 > 解决方案 > Perl - 如何使用元素数组作为键创建动态多级哈希

问题描述

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

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

并想要这样的东西:

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

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

谢谢

标签: perlmultidimensional-arrayhashcomplex-data-types

解决方案


一个最著名的工具可能是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是一个左值子例程(可以分配给),并且在可以时自动激活。


推荐阅读