my ($key, %data); for () { /^(?:(\d+):\s*)*(.+)$/; push @{ $data{ $key = $1 || $key } }, $2; }