gpt4 book ai didi

perl - 如果向 STDERR 写入任何内容,就会死掉吗?

转载 作者:行者123 更新时间:2023-12-02 15:43:10 25 4
gpt4 key购买 nike

如果向 STDERR 写入任何内容,如何强制 Perl 脚本终止?

当此类输出发生时,甚至之前,应立即完成此类操作,以防止该输出...

最佳答案

这似乎不是一个特别聪明的想法,但绑定(bind)文件句柄应该可以工作。根据perltie联机帮助页:

When STDERR is tied, its PRINT method will be called to issue warnings and error messages. This feature is temporarily disabled during the call, which means you can use warn() inside PRINT without starting a recursive loop.

所以像这样的东西(改编自手册页示例)应该可以工作:

package FatalHandle;

use strict;
use warnings;

sub TIEHANDLE { my $i; bless \$i, shift }

sub PRINT {
my $r = shift;
die "message to STDERR: ", @_;
}

package main;

tie *STDERR, "FatalHandle";

warn "this should be fatal.";

print "Should never get here.";

输出(退出代码为 255):

message to STDERR: this should be fatal. at fh.pl line 17.

关于perl - 如果向 STDERR 写入任何内容,就会死掉吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551941/

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