gpt4 book ai didi

perl - 判断 Perl 脚本的 STDOUT 是否被重定向

转载 作者:行者123 更新时间:2023-12-04 23:27:25 26 4
gpt4 key购买 nike

所以我写了一个简单的 html 1.0 服务器,我在服务器上有一些 perl 脚本。特别是,我有一个名为 my histogram 的脚本,它是一个 html 表单,其表单操作等于另一个 cgi 文件。这是代码:

print "<form action=\"tallyandprint.cgi\" method=\"GET\">";

现在,当我调用tallyandprint.cgi 时,它会用gnuplot 绘制一个图形并将其发送到用户的浏览器(STDOUT 在html 服务器代码中重定向,因此perl 继承了它)。现在,我还希望能够从 bash 运行tallyandprint.cgi,但采用不同风格的参数。现在,我使用 perl 解析通过解析 url 来获取模式,并在 + 符号之间分隔内容(例如:?pattern=1+2+3+4 就是 url 是什么)。

那很好很花哨,但我不希望我的论点在 bash 中写成 1+2+3+4,而是以不同的方式分开。我尝试使用 perl 版本的 isatty(),但由于输入始终来自终端(因为服务器执行它),因此我无法通过这种方式区分输入是来自 bash 还是来自 Web 浏览器。

我的下一个是找出是否重定向了 STDOUT。因为如果网络服务器运行 cgi,STDOUT 将被重定向到用户连接的套接字。如果在 bash 中运行,则 STDOUT 应该是正常的 tty。我如何在 perl 中检查这个?

最佳答案

if (-t STDOUT) {
say "STDOUT is probably not redirected";
}
else {
say "STDOUT is probably redirected";
}

关于perl - 判断 Perl 脚本的 STDOUT 是否被重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474098/

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