作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想关闭 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/
我是一名优秀的程序员,十分优秀!