Есть:
$aaa=<<zzz;
<input value='zzz' type="text" name="ddd">
zzz
Надо из этого получить name и value, при этом учесть, что порядок параметров может быть произвольным.
Сам набил вот такое:
$aaa=~m/<\S+(?{%inf=()})(\s+([^\s=]+)(?{$inf{'n'}=$^N})\
s*=\s*((['"])(.+?[^\\])\4(?{$inf{$inf{'n'}}=$^N})|(\
S)(?{$inf{$inf{'n'}}=$^N})))+\s*\/?\s*>/;
print map{"$_ = $inf{$_}\n"}keys %inf;
На выходе имеем хеш:
n = name
value = zzz
name = ddd
type = text
А нельзя ли попроще? Особенно учитывая, что мне не нужны все параметры, а надо только name и value? Что-то вроде ~/<\S(_разветвление_ (name=...)&(value=...))>. Символ & в perlre не упоминается :(