gpt4 book ai didi

Perl:qx 或 Die

转载 作者:行者123 更新时间:2023-11-30 23:59:12 25 4
gpt4 key购买 nike

简单任务:

我有一个脚本:

qx(wget -P $destination $file) || die "我无法下载文件:$file!\n";

但每次(无论成功与否),脚本都会终止。

我应该如何将其更改为成语行为? (成功 - 活着,而不是 - 死)

感谢您的帮助!

一些版本:我想知道所有日志,所以我更喜欢使用这样的行:

打印 qx(...)||die"EXPLAIN";

最佳答案

qx 与使用 backticks operator 相同.它返回正在执行的程序的输出,但只是它的 STDOUT,而不是 STDERR。 wget 似乎没有在 STDOUT 上输出任何内容(它在 STDERR 上报告进度),因此结果是一个空字符串,这在 Perl 意义上是错误的——并且 die 被调用。

通常您不会评估程序的输出以确定它是否成功,而是评估它的退出状态。这可以用 comparing $? to 0 来完成因为大多数 Unix CLI 程序在成功时返回 0。

如果您首先不需要 wget 的输出,那么不要使用 qx,而是使用 system反而。它直接返回程序的退出代码,允许您编写 die "oh noes!"如果 0 != system("wget ...")

关于Perl:qx 或 Die,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510910/

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