Невозможно распечатать массив в хэше другого массива - PullRequest
0 голосов
/ 05 августа 2011

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

$prefix = 'ABC';
$search_pc_exclude = "PC1 PC2 PC3";

@exclude = split(/\s+/, $search_pc_exclude);
push @prefix, {"pre" => $prefix, "exc" => @exclude};

print $prefix[0]->{pre};
print $prefix[0]->{exc}; #why this is not array?

1 Ответ

3 голосов
/ 05 августа 2011

Назначение фактически обрабатывается так:

push @prefix, {"pre" => $prefix, "exc" => "PC1", "PC2" => "PC"}

Что дает вам хэш с этими ключами.Для этого вам нужна ссылка на массив:

# This creates a copy of @exclude
push @prefix, {"pre" => $prefix, "exc" => [@exclude]}

Или:

# This creates a reference to @exclude. Any modifications to
# $prefix[0]->{exc} are actually modifications to @exclude
push @prefix, {"pre" => $prefix, "exc" => \@exclude}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...