On 11:45 Tue 17 Nov , Pavel wrote: P> Всем БОЛЬШОЕ спасибо за помощь, P> просмотрел предложенные модули, но пока больше всего понравилась идея с P> регэкспом + подключил JSON, P> и на данный момент получается что-то в этом роде:
P> $line =~ s/ID=(?=[^}]+=[^}]+})//g;
P> $line =~ s/NAME//g;
P> $line =~s/=/=>/g;
P> $line =~s/([\]}])/$1,/g;
P> eval '$struct = {' . $line . '};';
P> my $json_text = $json->encode($struct);
P> {"TYPE2":[],"TYPE1":[{"One":"Один айди"},{"Two":"Айди номер
P> два"},{"Some":"Еще что-то"},{"Yeah":"Вот так вот"}]}
my $str = <<eof;
TYPE1=[
{ ID=One NAME="Один айди" }
{ ID=Two NAME="Айди номер два" }
{ ID=Some NAME="Еще что-то" }
{ ID=Yeah NAME="Вот так вот" }
]
TYPE2=[
]
eof
my %parsed =
map { /ID=/ ? +{ m{ID=(\w+) NAME="(.*?)"}sg } : $_ }
$str =~ /^(\w+)=\[(.*?)\]/sgm;
print Dumper(\%parsed);
ну если там разные пробелы встречаются между лексемами
то вместо пробелов поставить \s+
--
... mpd is off
. ''`. Dmitry E. Oboukhov
: :’ : email: [email protected] jabber://[email protected]
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
signature.asc
Description: Digital signature
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
