как я могу получить доступ к этому пункту? - PullRequest
1 голос
/ 12 февраля 2011

Я использую Data :: Dumper. Мой код:

use Data::Dumper;
blah, blah, blah.....
print Dumper \@data;

Мой вывод:

$VAR1 = [
      [
        'Dave',
        'Green',
        '5',
      ],
      [
        'Bob',
        'Yellow',
        '4',
      ]
    ];

Как мне получить доступ к «Бобу» или «5»? Также, как я могу превратить @data в хеш или переменную, чтобы поместить все содержимое в базу данных?

РЕДАКТИРОВАТЬ: @data создается из чтения содержимого файла:

while (<PARSE>) {
    push @data, [unpack $template, $_]
}

1 Ответ

5 голосов
/ 12 февраля 2011
#!/usr/bin/env perl

use strict;
use warnings;

my @data = ( [ 'Dave', 'Green', '5', ], [ 'Bob', 'Yellow', '4', ] );
print $data[0]->[2], "\n";  # 5
print $data[1]->[0], "\n";  # Bob

@data - это массив массивов.Хеш состоит из ключа и соответствующего значения.Чтобы преобразовать массив в хеш, необходимо назначить один из элементов в качестве ключа, а остальные - значение.

Примечание

Альтернативный синтаксис:

$data[0]->[1] эквивалентно $data[0][1].

См.

  • perldoc perldsc - Руководство по структурам данных Perl
  • perldoc perlreftut - очень короткий учебник Марка о ссылках

Благодарности:

Билл Рупперт и Джоэл .

...