相关疑难解决方法(0)

如何在Perl中关闭并重新打开STDOUT?

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

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

我尝试的是:

    close STDOUT;
    # my code here
    open STDOUT;
Run Code Online (Sandbox Code Playgroud)

这不起作用......

谢谢

perl cgi stdout

10
推荐指数
2
解决办法
8954
查看次数

STDOUT是什么类型,如何选择写入?

STDOUT是否有“类型”?

printf STDERR ("STDOUT = %s\n", STDOUT);
printf STDERR ("\*STDOUT = %s\n", *STDOUT);
printf STDERR ("\\\*STDOUT = %s\n", \*STDOUT);
Run Code Online (Sandbox Code Playgroud)

产生:

STDOUT = STDOUT
*STDOUT = *main::STDOUT
\*STDOUT = GLOB(0x600078848)
Run Code Online (Sandbox Code Playgroud)

我了解*main::STDOUTGLOB(0x600078848)条目。这个“流行语”让我感到好奇。

我问是因为我想将类似文件句柄的参数传递给方法调用。在“ C”中,我将使用文件描述符或File *。我希望它默认为STDOUT。我所做的是:

$OUT_FILE_HANDLE = \*STDOUT;
if(@ARGV > 0 ) {
    open($OUT_FILE_HANDLE, ">", "$ARGV[0]") or die $!;
}
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是我不知道我到底做了什么。我提升了STDOUT吗?我怀疑我已经“毁了”(覆盖)STDOUT,这不是我想要的。

请原谅复合问题;他们似乎有关。

perl stdout filehandle

4
推荐指数
2
解决办法
192
查看次数

将文件句柄变量从 STDOUT 重新分配给没有 undef() 的文件时,Perl 的奇怪行为

执行以下简化代码时:

use strict;                                          # [01]
use warnings FATAL => 'unopened';                    # [02]
                                                     # [03]
my ($inHandle, $outHandle) = (\*STDIN, \*STDOUT);    # [04]
print $outHandle "STDOUT  1\n";                      # [05]
                                                     # [06]
# $outHandle re-assigned to outputA.txt ???          # [07]
open($outHandle, ">outputA.txt") or die ("A: $!\n"); # [08]
print $outHandle "FILE A\n";                         # [09]
print             "STDOUT? 2\n";                     # [10]
print STDOUT      "STDOUT  3\n";                     # [11]
close $outHandle;                                    # [12]
                                                     # [13]
# $outHandle is closed                               # [14]
print STDOUT      "STDOUT  4\n";                     # …
Run Code Online (Sandbox Code Playgroud)

perl warnings stdout filehandle

1
推荐指数
1
解决办法
120
查看次数

标签 统计

perl ×3

stdout ×3

filehandle ×2

cgi ×1

warnings ×1