tie my @lines, 'Tie::File', $data; my %matrix = (); my @dates; for my $ii (0 .. $#lines -1) { $lines[$ii] =~ s/\"//g; my @tmp = split /,/, $lines[$ii]; if ($ii == 0) { @dates = @tmp[2..$#tmp]; next; } $matrix{$tmp[0]} = [@tmp[2..$#tmp]]; }