gpt4 book ai didi

perl - 如果 perl -cw 发出警告,则设置退出状态

转载 作者:行者123 更新时间:2023-12-04 16:48:43 24 4
gpt4 key购买 nike

如果发出编译警告,我希望 perl -cw ... 返回非零退出状态。

例如。假设 a.pm是文件:

use warnings;
asd;

然后 perl -cw a.pm报告:
Unquoted string "asd" may clash ...
Useless use of a constant in void context ...
a.pm syntax OK

并且退出状态设置为 0。我希望能够检测到编译警告已发出 - 最好通过设置退出状态。

最佳答案

BEGIN 中设置警告处理程序块(靠近脚本顶部,因此该块在可能触发编译时警告的代码之前被解析),并在 END 中调整退出状态CHECK堵塞。

use strict;
use warnings;
my $warnings;
BEGIN {
$SIG{__WARN__} = sub { $warnings++; CORE::warn @_ }
}
$used::only::once = 42;
CHECK {
if ($^C && $warnings > 0) {
exit $warnings;
}
}

$^C 当且仅当您调用了 perl 时,变量才为真与 -c选项。

关于perl - 如果 perl -cw 发出警告,则设置退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038681/

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