Perl:从数组创建哈希

Fun*_*der 3 arrays perl hash data-structures

如果我有以下数组

my @header_line = ('id', 'name', 'age');
Run Code Online (Sandbox Code Playgroud)

如何从它创建一个等价于下面一行的哈希?

my %fields = { id => 0, name => 1, age => 2};
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是我可以使用有意义的名称而不是魔法数字作为索引.例如:

$row->[$fields{age}]; # rather than $row->[2] 
Run Code Online (Sandbox Code Playgroud)

Rom*_*aka 15

my %fields;
@fields{@header_line} = (0 .. $#header_line);
Run Code Online (Sandbox Code Playgroud)


DVK*_*DVK 6

my %fields = map { $header_line[$_] => $_ } 0..$#header_line;
Run Code Online (Sandbox Code Playgroud)