gpt4 book ai didi

perl - Perl 中默认变量 $_ 的作用域

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

我有以下方法接受一个变量,然后显示来自数据库的信息:

sub showResult {
if (@_ == 2) {
my @results = dbGetResults($_[0]);
if (@results) {
foreach (@results) {
print "$count - $_[1] (ID: $_[0])\n";
}
} else {
print "\n\nNo results found";
}
}
}

除了 foreach 循环中的打印行外,一切正常。这个 $_ 变量仍然包含传递给方法的值。

无论如何“强制”$_ 的新值范围,还是它总是包含原始值?

如果有任何很好的教程可以解释 $_ 的作用域是如何工作的,那也很棒!

谢谢

最佳答案

这里的问题是你真的在使用 @_而不是 $_ . foreach循环变化 $_ , 标量变量,不是 @_ ,如果您通过 $_[X] 对其进行索引,这就是您正在访问的内容.另外,再次检查代码以查看里面的内容 @results .如果它是数组或引用的数组,您可能需要使用间接 ${$_}[0]或类似的东西。

关于perl - Perl 中默认变量 $_ 的作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490417/

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