“ log = ...”命令行参数将脚本输出发送到STDOUT?

时间:2019-09-19 18:43:14

标签: perl stdout filehandle

我有一个Perl脚本,它需要一个--log=<log>命令行参数。显然,这会将脚本输出发送到指定的文件名。 无需更改脚本,我可以提供任何命令行值来将输出发送到STDOUT而不是日志文件吗?如您所料,当我提供“ STDOUT”时,它将输出发送到名为“ STDOUT”的文件中。

以下是相关代码:

use Getopt::Long;
...
my %C;
my $result = GetOptions("log=s" => \$C{log},
                        ...
                      );
...
my $log_file = $C{log};
...
my $log_fh;
if(open($log_fh, '>>', $log_file)) {
  print $log_fh $txt;
  close($log_fh);
} else {
  print STDERR "couldn't open log file $log_file\n";
}

我怀疑答案是否定的,但我希望有人比我聪明一些,可以解决。

编辑:已建议这是pass stdout as file name for command line util?的副本。尽管存在一些重叠,但该问题涉及未指定语言的命令行实用程序。我的问题特别与Perl有关,甚至与以上代码有关,因此可能会有不同的答案。

0 个答案:

没有答案
相关问题