我试图检索作为参考存储的数组的各个元素.
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)
如何获得价值
您[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)