line 1 table description,,,,,,,, line 2 few more file describtion,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, Column_1,Column_2,,,,Column_3,Column_4,Column_5, Name11,In,,,,DATA13,DATA14,Id11, Name21,Out,,,,DATA23,DATA24,Id11, Name31,In,,,,DATA33,DATA34,Id22, Name41,In,,,,DATA43,DATA44,Id22, ,,,,, ,,,,, ,,,,, #### sub mainCSV { open (my $inputfile1, '<', "$inputfile") or die "Unable to open $inputfile1: $!"; my %hash; while (<$inputfile1>) { $inputfile1 =~ s/\s*\z//; my @arrayfile1 = split /,/, $inputfile1; my $keyfile1 = shift @arrayfile1; $hash{$keyfile1} = \@arrayfile1; } print %hash; close $inputfile1; }