Si je le tableau suivantPerl: Création d'un hachage à partir d'un tableau
my @header_line = ('id', 'name', 'age');
Comment puis-je créer un hachage de celui-ci correspond à la ligne ci-dessous?
my %fields = { id => 0, name => 1, age => 2};
La raison pour laquelle je veux faire ceci est que je puisse utiliser des noms significatifs plutôt que des nombres magiques pour les index. Par exemple:
$row->[$fields{age}]; # rather than $row->[2]
pourquoi ne pas changer 'row' de $ à'% row' (un hachage)? – knittl
Il vient de Text :: CSV par exemple, my $ row = $ csv-> getline ($ fh) – FunLovinCoder
Puisque vous avez @header_line, vous pouvez facilement transformer $ row en hash: 'my% row_hash = map {$ _ => shift @ {$ row}} @header_line; Juste une autre alternative, mais pourrait être plus propre en utilisant '$ row_hash {age}' que d'avoir à utiliser la notation '$ row -> [$ fields {age}]' ... – plusplus