use strict; use warnings; use IO::All; use Data::Dumper; my @elements =(); my @lines = io('test_scores.txt')->chomp->slurp; splice @lines, 0, 1; # remove first line my %hash; foreach my $line (@lines) { $line =~ s/^\s+//; my @elements = split /\s+/, $line; $hash{splice @elements, 0, 1} = \@elements; } print Dumper \%hash; #### fruit Jan feb mar apr Apple A 40 45 50 54 orange O 12 25 24 29 Pineapple P 10 20 30 40