use strict; use warnings; my $file = "/tmp/index.csv"; open (FL, "< $file"); my @fieldnames = split ';', ; ## my @data; while ($line = ){ my %temp; @temp{ @fieldnames } = split ';', $line; push @data, \%temp; } ## print the 'Forex' field of the 124th line (array runs from 0). print $data[ 123 ]{ Forex };