Хэш для массива в Perl - PullRequest
       4

Хэш для массива в Perl

1 голос
/ 22 февраля 2011

Я работаю над созданием класса Graph в Perl и надеюсь, что каждый Graph будет содержать узлы.Каждый узел имеет некоторые свойства, а также (на данный момент) массив, который содержит ссылки на каждый узел, к которому он подключен.Пока у меня есть это определение узла:

use strict;
package Node;

sub new{
    my $class = shift;
    my @array = (1,2,3);
    my $array_r = \@array;
    my $self = {
        code => undef,
    name => undef,
    country => undef,
    continent => undef,
    timezone => undef,
    coordinates => ("", "", "", ""),
    population => undef,
    region => undef,
    arrayRef => $array_r,
    @_,
};
bless $self, $class;
return $self;
}

И все же после вызова следующей функции из моего основного скрипта:

sub getSetArray{
my $self = shift;
return $self->{arrayRef};
}

, сохранения значения и его печати: my $ val= $ firstnode-> getSetArray ();print @ {$ val};

Я получаю следующую ошибку:

Не могу использовать неопределенное значение в качестве ссылки на массив.

Я предполагаю, что понимаюуровень косвенности моих ссылок выключен, но я не вижу, что происходит.

Спасибо, -A

1 Ответ

3 голосов
/ 22 февраля 2011

Ваш ("","","","") включен в пары ключ / значение в {}, отбрасывая вас. Если координаты тоже должны быть arrayref, вы хотите ["","","",""].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...