use strict; use warnings; my $filename = 'fruits.txt'; #opening the text file open(DATA, '<', $filename) or die "Could not open file '$filename' $!"; readline(DATA);#skipping the header my %data; while () { my @fields = split; my $key = join(' ', splice(@fields, 0, 2)); $data{$key} = \@fields; } for my $key (sort(keys(%data))) { printf("%s=> %s\n", $key, join(' ', @{$data{$key}})); }