我是一个perl新手,我想要一些条件重定向到控制台或输出文件的帮助。有人能告诉我这是最好的方法吗?
1)我要打印的句子数量很多,所以我不想为每个要打印的句子添加多个if语句
2)我想选择打印到控制台以便快速查看或将其重定向到输出文件(可以创建的输出文件的数量可以是任意数量)
3)如果我创建了一个列出的子程序,我打开特定文件的次数可能会变得很高
4)我要打印到控制台或文件的文本/句子很复杂(可能是我正在打印的其他perl / C代码)
sub print_2_file_or_console {
my ($print_to_file, $filename, $text) = @_;
if($print_to_file==1) {
#open file and redirect text to file
#close file
}
else {
print "$text\n";
}
}
答案 0 :(得分:0)
标准输出只是一个像打开文件一样的句柄。
my $fh;
open($fh, ">". $file_name) or die $!;
my $outh = $print_to_file ? $fh : *STDOUT;
print $outh $some_string;
close($fh);
请注意,此代码始终会创建一个文件。