我有了這個Perl腳本:Perl腳本不打印<STDIN>多次
#!/usr/bin/perl
use strict;
use warnings;
print <STDIN>, "\n";
print <STDIN>, "\n";
print <STDIN>, "\n";
print <STDIN>, "\n";
print <STDIN>, "\n";
而且我路過「你好」到腳本的標準輸入:
echo "Hello" | perl test.pl
我期望它打印「Hello」五次,但它只打印「Hello」,後面跟着五個換行符。任何人都可以解釋爲什麼這不會按預期工作?
嗯......我認爲將''分配給標量變量會更有意義。我怎麼能不止一次讀這個? –
alex
這就是管道的工作原理。讀完之後,它不再存在了。實際上這就是文件的工作方式 - 它們有一個結束,當你到達最後時,重複讀取操作不會跳回到開頭,即使在有能力返回的文件上也是如此。你知道什麼語言,你可以反覆閱讀相同的輸入,只需再次說「閱讀」? –