gpt4 book ai didi

arrays - 旧版 perl 中的警告消息

转载 作者:行者123 更新时间:2023-12-04 04:44:49 28 4
gpt4 key购买 nike

我的脚本中有以下代码:

while (my ($key, $value) = each @values) {
if ( $key < $arraySize-1) {
if ( $values[$key+1] eq "user") {
$endcon=1;
}
}
if ( ( $startcon == 1 ) && ( $endcon != 1 ) ) {
$UptimeString .= $value;
}
if ( $value eq "up") {
$startcon=1;
}
if ( $value eq "average:") {
$LoadMinOne=$values[$key+1];
}
}

在编译它时,在 perl 5.14 中,我没有警告,但是在 perl 5.10.1 中,我有这个警告: Type of arg 1 to each must be hash (not private array) at ./uptimep.pl line 21, near "@values) "
第 21 行是 while (my ($key, $value) = each @values) {
这是什么意思?

最佳答案

如错误消息所述,each参数必须有一个哈希值,但你给它一个数组。

您可以替换此行:

 while (my ($key, $value) = each @values) {

通过:
for my $key(0 .. $#values) {
my $value = $values[$key];

根据 doc each从 perl 5.12.0 接受数组作为参数

关于arrays - 旧版 perl 中的警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18356328/

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