0

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

1 回答 1

0

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

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

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

于 2014-02-24T19:15:46.940 回答