my $info = do { local $/; }; my %lines = $info =~ /(\d+): ([^\d]+)/gs; #### my ($key, %data); for () { /^(?:(\d+):\s*)*(.+)$/; push @{ $data{ $key = $1 || $key } }, $2; }