gpt4 book ai didi

perl - 运行时错误 "Can' t 修改非左值子例程”

转载 作者:行者123 更新时间:2023-12-01 04:31:34 24 4
gpt4 key购买 nike

我有一个包含 1 个或多个字符串的数组 @jobs,但是当我运行以下代码时,出现运行时错误“无法在/home/xa341d/bin/hourly.pl 行修改非左值子例程调用32"

elsif (@jobs > 0) {
my $my_jobs = "";
my $i;

for ($i = 0; i <= $#jobs; i++) {
my $temp = $jobs[$i];
$my_jobs += "-j $temp ";
}

print "my_jobs = $my_jobs\n";
open $alOut, "/home/zn035b/bin/autorep2.pl $my_jobs -l 0 | grep `date \"+%m/%d/%Y\"` | sort -k 3,3|" or die "Can't open: $!";
}

有人知道这里会发生什么吗?

最佳答案

Perl 程序员会将 foreach 循环写成:

foreach my $job (@jobs) {
$my_jobs .= "-j $job ";
}

或者也许:

$my_jobs .= "-j $_ " foreach @jobs;

C 风格的 for 循环在 Perl 中很少使用。并且有充分的理由。 foreach 循环通常很容易理解。

你也可以用 map 来做:

my $jobs = join ' ', map { "-j $_" } @jobs;

关于perl - 运行时错误 "Can' t 修改非左值子例程”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5867289/

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