в ходе обсуждения 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