my %stuff = map { /^=item * (\w+) => (.*)/ ? $1 => $2 : die "Malformed line: $_" } grep /^=item */, split /\r?\n/, <<'=cut'; =over 4 =item * foo => ... =item * bar => ... =item * baz => ... =back =cut