use warnings; use strict; use Data::Dumper; my %hash; while () { my ($id, @description) = split; $hash{$id} = [@description]; } # let's print out what we have print Dumper( \%hash ); __DATA__ Data_Type:1234567890 data data data data data Data_Type:1237834810 data2 data2 data2 data2 data2