【发布时间】:2015-12-11 13:01:25
【问题描述】:
我正在尝试使用 perl 进行简单的问卷调查。我想在用户输入时将响应记录在日志文件中。我在将 stdin 重定向到文件时遇到问题。
下面是我实现的代码。参考this。
open my $tee, "|-", "tee some_file.out";
print $tee "DO you want to continue?(y/n)\n";
$var=<STDIN>;
$var =~ s/[\n\r\f\t]//g;
if($var eq "y"){
print $tee "Enter\n";
}
close $tee;
我现在得到的输出是,只有在提供用户输入后才会打印问题。
#in console
y
DO you want to continue?(y/n)
Enter
#some_file.out
DO you want to continue?(y/n)
Enter
下面是预期的输出:
#in console
DO you want to continue?(y/n)
y
Enter
#some_file.out
DO you want to continue?(y/n)
y
Enter
我也找到了Duplicate stdin to stdout,但真的无法实现我想要的。 我错过了什么吗?!
有没有更清洁的解决方案?
【问题讨论】:
-
为什么不简单地将所有内容打印两次(我知道,有点多余,但这是一种方式):一次到
stdout,一次到文件?然后将输入也打印到文件中。 -
@Arc676 这是我最后的选择;)