в ходе обсуждения 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
[email protected] | http://moscow.pm.org

Ответить