Я пытаюсь создать что-то в Perl, что в основном напоминает команду Unix tee
. Я пытаюсь прочитать каждую строку из STDIN
, выполнить подстановку на ней и распечатать ее. (И, в конце концов, также распечатайте его в файле.) Это работает, если я использую консольный ввод, но если я попытаюсь передать вход в команду, он ничего не сделает. Вот простой пример:Как я могу прочитать входящий поток в Perl в Windows?
print "about to loop\n";
while(<STDIN>)
{
s/2010/2009/;
print;
}
print "done!\n";
Старается трубы команды режа к ней, как это:
C:\perltest>dir | mytee.pl about to loop done!
Почему он не видит водопроводный вход? (Я использую Perl 5.10.0 на WinXP, если это уместно.)
Кажется OS конкретным, он прекрасно работает на моем OS X поле. – zoul
Это * почти * дубликат http://stackoverflow.com/questions/1286873/perl-on-windows-file-associations-and-i-o-ireirection. –