use strict; use warnings; my %data; map {$data{0+$_ =~ s/[ ,].*\n?//r} = $_} ; print $data{0+$_} for qw( 10.1 100.1 25.1 103.1 ); __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