Name test1 test2 kim A 20 30 kate k 40 50 #### #!/usr/bin/perl use strict; use warnings; use IO::All; use Data::Dumper; #use List::Util qw(sum); #$Data::Dumper::Useqq = 1; 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; my $key = join '-',splice @elements, 0, 2; $hash{$key} = \@elements if length($key) > 0; } #Data::Dumper::Useqq = 1; print Dumper \%hash; #### $var1 ={ 'kim-a' =>['20', '30'], 'kate-k' =>['40', '50']} #### $var1 ={ 'kim-a' =>[25], 'kate-k' =>[45']}