我正在一个用户可以传递-o file选项的程序中工作,然后应该将输出定向到该文件.否则,它应该去stdout.
要检索选项,我正在使用模块getopt long,这不是问题.问题是我想用该文件创建一个文件句柄,或者如果未设置该选项则为其分配标准输出.
if ($opt) {
open OUTPUT, ">", $file;
} else {
open OUTPUT, # ???
}
Run Code Online (Sandbox Code Playgroud)
那是因为这样,以后在我的代码中我可以:
print OUTPUT "...";
Run Code Online (Sandbox Code Playgroud)
不用担心OUTPUT是stdout还是用户指定的文件.这可能吗?如果我在这里设计不好,请告诉我.
是否有任何理由open(...)在Perl中使用双参数形式而不是三个或更多参数版本?
我能想出的唯一原因是两个论证形式较短的明显观察.但假设冗长不是问题,是否有任何其他原因可以让你选择双参数形式open(...)?