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

Если с разбегу - то смотреть можно в булевом контектсте, не будет
автовификации. Или принудительно включить прагму 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 <[email protected]> написал:

> Здравствуйте, 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:[email protected]
>
>
>
>
>
>
> --
> С уважением,
>  Eugen                          mailto:[email protected]
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>



-- 
С уважением, Денис Федосеев
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить