[Moscow.pm] динамическое создание конструкций вида $x->{y}

Denis Fedoseev denis.fedoseev на gmail.com
Чт Июн 18 13:10:57 PDT 2015


А какая задача решается?

Если с разбегу - то смотреть можно в булевом контектсте, не будет
автовификации. Или принудительно включить прагму no autivivification (В
названии могу ошибаться).

Конструкция вида:
$x->{y} = 1;
$x->{y}->{z} = 2;

не работает потому что при присвоении
$x->{y}->{z} = 2;
в {y} будет {z => 2}, а не [1, {z => 2}] ибо это не пхп и тут со
структурами все строго.

Если делать
$x->{y}->{undef} = 1;
$x->{y}->{z} = 2;

То в {y} будет { undef => 1, z => 2} что является валидным хэшем.

19 июня 2015 г., 0:54 пользователь Eugen Konkov <kes-kes на yandex.ru> написал:

> Здравствуйте, Dmitry.
>
> А что за ошибки пишет?
>
> Добавьте:
>
> use warnings;
> use strict;
> или
> use Modern::Perl;
>
> в начале программы.
>
> Вы писали 18 июня 2015 г., 20:38:57:
>
> DI> Здравствуйте, Moscow.pm.
>
> DI> Не знаю, как правильно сформулировать вопрос и что гуглить. Почему
> DI> конструкция вида
>
> $x->>{y} = 1;
> $x->>{y}->{z} = 2;
>
> DI> не работает, а
>
> $x->>{y}->{undef} = 1;
> $x->>{y}->{z} = 2;
>
> DI> естественно работает.
>
> DI> Проблема в том, что я заранее не знаю сколько этих
>
> $x->>{y}->{z}......->{n}
>
> DI> в итоге может получиться.
>
> DI> Куда посмотреть?
>
> DI> Спасибо.
>
> DI> --
> DI> С уважением,
> DI>  Dmitry                          mailto:sadok на mail.ru
>
>
>
>
>
>
> --
> С уважением,
>  Eugen                          mailto:kes-kes на yandex.ru
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>



-- 
С уважением, Денис Федосеев
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150618/f60a6c68/attachment.html>


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