fetch())-6ren">
gpt4 book ai didi

Perl 遍历哈希数组,给出 Can't use string ("password") as a HASH ref while "strict refs"in use at

转载 作者:行者123 更新时间:2023-12-02 01:17:20 25 4
gpt4 key购买 nike

尝试遍历哈希数组并收到一条我不理解的错误消息。

下面是创建哈希数组的代码,使用 Dumper 它似乎包含了所有的东西。像这样它运行良好。

while ($getAdUserInfo->fetch()){

$name = $name || '';
$isactive = $isactive || '';
$loginid = $loginid || '';
$account_status = $account_status || '';
$password = $password || '';
#print "$name, $isactive, $loginid, $account_status, $password\n";
my %row = (
name => $name,
isactive => $isactive,
loginid => $loginid,
account_status => $account_status,
password => $password,
);
push(@adUserInfo, %row);
}

但是如果我添加这段代码来循环遍历它

for my $rowRef (@adUserInfo)  {
print $rowRef->{password};
}

在 adempiereToExo.pl 第 64 行使用“strict refs”时,我收到此错误无法使用字符串(“密码”)作为哈希引用

现在我已经对这个错误做了一些阅读,大多数时候它看起来像是当有人在数组中有一些不是哈希引用的东西时发生的。但我不认为这里是这种情况。我对 Perl 非常陌生,所以我可能是错的。此外,它总是提示哈希中的最后一个元素?

我知道有很多人问这个错误,但是我看了很多答案,还是想不通。

最佳答案

改变这个:

push(@adUserInfo, %row);

(这意味着“将 %row 的键和值扩展到一个列表中,并将它们全部添加到 @aduserInfo”;您可以添加一个 打印“@adUserInfo\n” 以获得更清晰的概念)对此:

push(@adUserInfo, \%row);

(这意味着“创建对 %row 的引用,并将该引用添加到 @aduserInfo”)。

Also it is always the last element in the hash that it moans about?

这是任意的。哈希是无序的,因此没有“最后一个元素”的概念。

关于Perl 遍历哈希数组,给出 Can't use string ("password") as a HASH ref while "strict refs"in use at,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9677617/

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