Примерно так:<br><br>s/ID=(?=[^}]+=[^}]+})//g;<br>s/=/=&gt;/g;<br>s/([\]}])/$1,/g;<br>eval &#39;$struct = {&#39; . $_ . &#39;};&#39;;<br><br>Ну, только нужно проверить, не содержат ли значения в кавычках символы [=}\]].<br>
<br><div class="gmail_quote">16 ноября 2009 г. 13:40 пользователь Pavel <span dir="ltr">&lt;<a href="mailto:brosku@mail.ru">brosku@mail.ru</a>&gt;</span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Приветствую, коллеги!<br>
Столкнулся с одной задачкой, но прежде чем изобретать велосипед,<br>
хотел бы обратиться к сообществу.<br>
Есть сервер отвечающий на запросы вот таким вот текстом (между тире):<br>
---------------------------------------<br>
TYPE1=[<br>
{ ID=One NAME=&quot;Один айди&quot; }<br>
{ ID=Two NAME=&quot;Айди номер два&quot; }<br>
{ ID=Some NAME=&quot;Еще что-то&quot; }<br>
{ ID=Yeah NAME=&quot;Вот так вот&quot; }<br>
]<br>
TYPE2=[<br>
]<br>
----------------------------------------<br>
Задача состоит в том чтобы спарсить подобные ответы в структуры perl (хэши,<br>
массивы, ...) (ответы могут различаться по структуре, иметь вложенные<br>
массивы данных, и т.п.)<br>
В принципе всевозможные комбинации конечны, и можно написать n-ное кол-во<br>
регэкспов которые будут парсить<br>
этот вывод, но возможно есть какие-то решения наподобие модулей<br>
Config::Any::INI, которые позволяют обрабатывать подобные структуры и<br>
получать на выходе структуры perl?<br>
Спасибо.<br>
<font color="#888888"><br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Andrei Protasovitski<br>&lt; andrei[dot]protasovitski[at]gmail[dot]com &gt;<br>Diemen, Netherlands<br>