#!/usr/bin/perl use strict; use warnings; use IO::All; use Data::Dumper; my @lines = io('in.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; __END__ $ perl test.pl $VAR1 = { 'Pineapple' => [ '10', '20', '30', '40' ], 'orange' => [ '12', '25', '24', '29' ], 'Apple' => [ '40', '45', '50', '54' ] };