Perl, массив ссылок - PullRequest
       9

Perl, массив ссылок

7 голосов
/ 04 июня 2010

В следующем коде Perl я ожидал, что буду ссылаться на ссылку на массив внутри массива

#!/usr/bin/perl

use strict;
use warnings;

my @a=([1,2],[3,4]);

my @b = @$a[0];

print $b[0];

Однако, похоже, это не работает. Я ожидал бы, что это выведет 1.

@a это массив ссылок

@b является $a[1] разыменованным (я думаю)

Так в чем же проблема?

1 Ответ

10 голосов
/ 04 июня 2010

Этот материал хитрый.

@$a[0] анализируется как (@$a)[0], разыменование (неопределенного) скаляра $a

Вы хотели сказать @{$a[0]}.

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