gpt4 book ai didi

perl - 如果在主脚本中重定向,我如何在 perl 模块中打印到 STDOUT

转载 作者:行者123 更新时间:2023-12-01 03:59:56 27 4
gpt4 key购买 nike

我已重定向 STDOUT在 Perl 脚本中。我在模块中打印的所有内容都被重定向到一个文件。有没有办法恢复STDOUT在 Perl 模块中?

这是我的例子

require my_module;

open(STDOUT, ">$outlog") || die "Error stdout: $!";
open(STDERR, ">>$outlog") || die "Error stderr: $!";

my_module::my_func();

所以我想在 STDOUT 上打印一条消息在 my_module::my_func()功能并退出。

最佳答案

实际上,除非您将其保存在其他位置,否则您无法恢复 STDOUT。

您可以执行以下操作:

        # Save current STDOUT handle in OLDOUT
open (OLDOUT, ">&STDOUT") or die "Can't open OLDOUT: $!";

# Set STDOUT to a your output file
open (STDOUT, ">$youroutputfile") or die "Can't open STDOUT: $!";

# Do whatever you want to do here.......
# ...........

# Close STDOUT output stream
close (STDOUT);

# Reset STDOUT stream to previous state
open (STDOUT, ">&OLDOUT") or die "Can't open STDOUT: $!";

# Close OLDOUT handle
close (OLDOUT);

# Here your preview STDOUT is restored....

:)

关于perl - 如果在主脚本中重定向,我如何在 perl 模块中打印到 STDOUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230088/

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