作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
fetch())-6ren">
尝试遍历哈希数组并收到一条我不理解的错误消息。
下面是创建哈希数组的代码,使用 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/
我是一名优秀的程序员,十分优秀!