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)
my %fields = map { $header_line[$_] => $_ } 0..$#header_line;
Run Code Online (Sandbox Code Playgroud)