хеш, содержащий значения адреса массива 2 D - PullRequest
0 голосов
/ 15 мая 2011

Как в Perl создать хеш, значения которого будут адресом двумерного массива?
Мне тоже нужно получить значения двумерного массива динамически.Точная кодировка.Я ломаю голову.

Ответы [ 2 ]

2 голосов
/ 15 мая 2011

Как насчет этого?

my %hash = (
    foo => [[1, 2], [3, 4]],
    bar => [[5, 6], [7, 8]]
);

2D-массив здесь моделируется как массив массивов.

1 голос
/ 16 мая 2011

Массивы и хэши могут принимать только скалярные значения, однако ссылка на массив (созданная с использованием [], среди прочего) является скаляром. Поэтому создание вложенных массивов выполняется с использованием этой конструкции. Думайте об этом как:

$array_element_1 = ['row 1 column 1', 'row 1 column 2'];
$array_element_2 = ['row 2 column 1', 'row 2 column 2'];
$array_reference = [$array_element_1, $array_element_2];
%hash = ( 'key' => $array_reference);

, за исключением случаев без промежуточного хранения. Они называются анонимными ссылками (поскольку они не требуют, чтобы вы называли исходную структуру именем перед созданием ссылки на структуру). Обратите внимание, что анонимные хеш-ссылки создаются с использованием {}. Узнайте больше на perldoc perlreftut.

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