gpt4 book ai didi

perl - 为什么我的子程序返回值没有分配给 $_ 默认变量

转载 作者:行者123 更新时间:2023-12-01 06:59:26 26 4
gpt4 key购买 nike

我有一个更新 RSS 提要的 Perl 子程序。我想测试返回值,但是这个函数用在很多地方所以我只想测试默认变量$_如果没有指定变量,据我所知应该是分配的返回值。

代码有点长,无法包含所有内容,但本质上它执行以下操作

sub updateFeed {
#....
if($error) {
return 0;
}
return 1;
}

为什么呢
$rtn = updateFeed("My message");
if ($rtn < 1) { &Log("updateFeed Failed with error $rtn"); }

不记录任何错误

然而
updateFeed("myMessage");
if ($_ < 1) { &Log("updateFeed Failed with error $_"); }

记录错误“ updateFeed Failed with error”? (注意消息末尾没有值。)

谁能告诉我为什么默认变量似乎包含一个空字符串或 undef?

最佳答案

因为 Perl 不是那样工作的。 $_不会自动获取在 void 上下文中调用的函数的结果。有一些内置的读写操作符$_@_默认情况下,但您自己的子程序只有在您编写代码来实现它时才会这样做。

关于perl - 为什么我的子程序返回值没有分配给 $_ 默认变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492395/

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