【发布时间】:2011-01-29 14:52:40
【问题描述】:
我正在尝试在 Perl 中创建一些基本上类似于 Unix tee 命令的东西。我正在尝试读取STDIN 的每一行,对其进行替换,然后打印出来。 (最终,也将其打印到文件中。)如果我使用控制台输入,这可以工作,但如果我尝试将输入通过管道传递给命令,它不会做任何事情。这是一个简单的例子:
print "about to loop\n";
while(<STDIN>)
{
s/2010/2009/;
print;
}
print "done!\n";
我尝试像这样通过管道将 dir 命令传递给它:
C:\perltest>目录| mytee.pl 即将循环 完毕!为什么看不到管道输入? (如果相关的话,我在 WinXP 上使用 Perl 5.10.0。)
【问题讨论】:
-
似乎是特定于操作系统的,它在我的 OS X 机器上运行良好。