gpt4 book ai didi

perl - 为什么我不能像我期望的那样引用一个(特定的)Perl 数组?

转载 作者:行者123 更新时间:2023-12-05 09:26:11 24 4
gpt4 key购买 nike

我正在尝试使用以下方法遍历数组数组:

foreach my $elem ( @{ $mastermap } )
{
say $elem;
say $elem[0];
say Dumper($elem);
}

(此时所有只是调试输出,而不是我真正想对数组数据做的事情。)我得到的输出(对每个循环迭代重复)是这样的:

ARRAY(0x55dabc740cc0)
Use of uninitialized value in say at test.pl line 39.

$VAR1 = [
'bob',
'*',
'1492',
'1492',
'machine acct',
'/var/bob',
'/bin/false'
];

所以 $elem 是一个数组(也试过把它当成哈希,这是错误的),Dumper 可以输出数组的内容,但是 $elem[0] 是未定义的?请告诉我我对数组的误解(可能很多)。如果有帮助,$mastermap 是(我认为)一个数组数组,使用 Text::CSV 读取,如下所示:

my $mastermap = csv ({ in => $passwd, sep_char => ":", quote_char => "#" });

其中 $passwd 或多或少是/etc/passwd 的副本。

最佳答案

$elem[0] 尝试访问数组 @elem 中的第一项。您真正想要的是访问数组引用 $elem 中的第一项。这样做的正确语法是:

$elem->[0]

$$elem[0]

您应该始终将 use strict;use warnings; 添加到 Perl 脚本/程序的开头。这样做会产生以下警告:

Global symbol "@elem" requires explicit package name (did you forget to declare "my @elem"?) at...

关于perl - 为什么我不能像我期望的那样引用一个(特定的)Perl 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74127005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com