Perl - 条件打印到控制台或文件

时间:2013-09-23 04:28:02

标签: perl redirect output

我是一个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";
    }
    }

1 个答案:

答案 0 :(得分:0)

标准输出只是一个像打开文件一样的句柄。

    my $fh;
    open($fh, ">". $file_name) or die $!;
    my $outh = $print_to_file ? $fh : *STDOUT;
    print $outh $some_string;
    close($fh);

请注意,此代码始终会创建一个文件。