[Moscow.pm] List::Util, Scalar::Util, а вот как?

STork Loginoff Николай Александрович STork2000 на yandex.ru
Чт Июн 9 04:01:37 PDT 2011


Для получения JSON данных использовали Data::Structure::Util

use Data::Structure::Util qw(unbless);

unbless($prepare_xml);
$param->{'json'} = $json->encode( $prepare_xml );


09.06.2011, 14:49, "Ivan Petrov" <i.petro.77.00 на gmail.com>:
> в ходе обсуждения List::Util вспомнился вопросик.
>
> Имеем некий класс
>
>  $self = что-то блеснутое;
>
> хотим сериализовать это что-то и положить в виде хеша или массива в
> БД.
>
> вопрос: можно ли из блесснутой ссылки выколупать объект не делая нечто
> вроде
>
> if (reftype($self) eq 'HASH') {
>     $to_dump = { %$self };
> } elsif(reftype($self) eq 'ARRAY') {
>     $to_dump = [ @$self ];
> } else {
>     $to_dump = $$self;
> }
>
> и соответственно тот же вопрос на тему: если $to_dump содержит
> bless'нутые хеши, то тоже самое.
>
> многие сериализаторы банально падают получая объект на вход (как
> например некоторые вещи вроде JSON), а некоторые сериализуют
> блесснутый и не блесснутый по разному (как например Dumper).
>
> получается точбы подготовить объект к сериализации надо фактически
> выполнить полное копирование всех его полей, но ведь объект - просто
> блесснутая ссылка на нечто, как отколупать из этой ссылки само нечто
> не копируя его?
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

-- 
 С Уважением, Login|off Николай Александрович.


Подробная информация о списке рассылки Moscow-pm