如何对数组进行dereferrence

Nit*_*esh 3 perl

我试图检索作为参考存储的数组的各个元素.

my @list = ("three 13  3  1  91 3", "one   11  5  1  45 1",
            "two   12  7  1  33 2", "four  14  1  1  26 4");

my @refList = map { [$_, (split)[-1]] } @list;

# see what it is in @refList
use Data::Dumper;
print Dumper(@refList);

print "\n the value is $refList[0][0][1]";
Run Code Online (Sandbox Code Playgroud)

产量

$VAR1 = [
          'three 13  3  1  91 3',
          '3'
        ];
$VAR2 = [
          'one   11  5  1  45 1',
          '1'
        ];
$VAR3 = [
          'two   12  7  1  33 2',
          '2'
        ];
$VAR4 = [
          'four  14  1  1  26 4',
          '4'
        ];

 the value is
Run Code Online (Sandbox Code Playgroud)

但我需要输出

 print "\n the value is $refList[0][0][1]" as 13
Run Code Online (Sandbox Code Playgroud)

如何获得价值

Fil*_*efp 6

[0]在打印中使用了太多,以引用3您正在讨论的值应该阅读

$refList[0][1]
Run Code Online (Sandbox Code Playgroud)

我想我会精神上的,我发誓,我以为你之前在谈论这个价值3.虽然我看到你的帖子没有变化,奇怪..我责怪缺乏睡眠.

如果您正在寻找价值13(您的帖子当前所说的价值),您应该将代码更改为以下内容

use Data::Dumper;

my @list    = ("three 13 3 1 91 3", "one 11 5 1 45 1", "two 12 7 1 33 2", "four 14 1 1 26 4");
my @refList = map {@_=split;$_[0]=$_;[@_]} @list;

# print Dumper [@refList];

print "\n the value is ", $refList[0][1];
Run Code Online (Sandbox Code Playgroud)

如果您只想将每个字符串转换为数组引用,请将其用作声明/定义@refList.

my @refList = map {[split]} @list;
Run Code Online (Sandbox Code Playgroud)