in reply to arranging the csv file

Since it is a CSV file you could use Text::CSV like Loops mentioned or use Text::CSV_XS like so:

use strict; use warnings; use Text::CSV_XS; use Data::Dumper; my %data; my $csv = Text::CSV_XS->new( { binary => 1 } ) or die "Cannot use CSV: " . Text::CSV->error_diag(); while ( my $row = $csv->getline(*DATA ) ) { $data{ shift @{$row} } = $row; } $csv->eof or $csv->error_diag(); # Please print out your data as you # specified as you wanted :) print Dumper \%data; __DATA__ 100.1,A ,25, 36,56,89,45,36,56 25.1,B,232,565,65,56,56,48,25 103.1,C,25,5,6,9,4,5,56,889,9 10.1,D,5,6,5,8,9,8,12,23,36,6
NOTE:
Am only showing the usage of Text::CSV_XS, here, with "__DATA__", the OP would have to check the documentation to see how it used with a "file".
The desired print out is also left out for the OP.

Hope this helps.

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me