Search code examples
arraysperldata-structureshash

Perl: Create a hash from an array


If I have the following array

my @header_line = ('id', 'name', 'age');

How do I create a hash from it equivalent to the line below?

my %fields = { id => 0, name => 1, age => 2};

The reason I want to do this is so that I can use meaningful names rather than magic numbers for indexes. For example:

$row->[$fields{age}]; # rather than $row->[2] 

Solution

  • my %fields;
    @fields{@header_line} = (0 .. $#header_line);