Я пытаюсь создать на Perl что-то похожее на команду Unix tee
. Я пытаюсь прочитать каждую строку STDIN
, запустить для нее подстановку и распечатать. (И, в конце концов, также распечатать его в файл.) Это работает, если я использую консольный ввод, но если я пытаюсь передать ввод в команду, это ничего не делает. Вот простой пример:
print "about to loop\n";
while(<STDIN>)
{
s/2010/2009/;
print;
}
print "done!\n";
Я пытаюсь передать ему команду dir следующим образом:
C:\perltest>dir | mytee.pl about to loop done!
Почему он не видит входной канал? (Я использую Perl 5.10.0 на WinXP, если это уместно.)