use Data::Dumper; my $info = do { local $/; }; my %lines; while($info =~ m/(\d+)\: (.+?)$/gm) { $lines{$1} = $2; } print Dumper (\%lines); #### my %lines = $info =~ /(\d+): (.+?)$/gm;