gpt4 book ai didi

perl - 如何在 Perl 中关闭和重新打开 STDOUT?

转载 作者:行者123 更新时间:2023-12-04 02:50:55 25 4
gpt4 key购买 nike

我想关闭 STDOUT 以防止我的代码输出我需要进一步计算但不想要在我的网页上的特定图像。

所以我想关闭 STDOUT,对我的代码做我必须做的事情,然后重新打开 STDOUT 以将内容输出到网页。 (不是文件)

我试过的是:

    close STDOUT;
# my code here
open STDOUT;

这不起作用...

谢谢

最佳答案

有几种方法可以解决您的问题,其中许多方法不需要您关闭 STDOUT 并冒着使您的程序的标准 I/O channel 变得困惑的风险。

例如,您可以使用 (1-arg) select 命令直接输出 print临时命令其他地方。

 print $stuff_you_want_to_send_to_STDOUT;

select(NOT_STDOUT);
# now default print sends things to NOT_STDOUT.
# This doesn't need to be a real filehandle, though you may get warning
# messages if it is not.
...;
print $the_image_you_dont_want_to_go_to_STDOUT;
...;

select(STDOUT);
# now print sends things to STDOUT agin
print $more_stuff_you_do_want_to_go_to_STDOUT;

您还可以重新分配 *STDOUT glob 在运行时不关闭任何句柄。
 *OLD_STDOUT = *STDOUT;
print $for_STDOUT;

*STDOUT = *NOT_STDOUT; # again, doesn't need to be a real filehandle
print $stuff_to_suppress;

*STDOUT = *OLD_STDOUT; # restore original STDOUT
print $more_stuff_for_STDOUT;

关于perl - 如何在 Perl 中关闭和重新打开 STDOUT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417185/

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