0
我試圖從STDIN用perl腳本讀取數據。從STDIN管道的perl輸入只能在腳本前使用perl
這裏是我使用的測試腳本:
#!/usr/bin/perl
foreach $line (<>)
{
print $line;
}
因此,從命令提示符下,I型:
> cat somefile | testscript
>
它沒有返回,沒有錯誤。
我然後鍵入以下命令:
> cat somefile | perl testscript
> *the contents of the file are printed line by line*
我真的不希望用戶有追加的Perl腳本前,如果我沒有。
感謝您的閱讀。
你可以通過'while(<>)'來解決這個問題,並處理變量'$ _'。 'while(<>)'有很多魔法,如果您在另一個上下文中訪問'<>',則不會發生這種情況。 –
@DovGrobgeld你知道什麼樣的魔法?上面的兩個例子似乎都適用於我 –
你確定在/ usr/bin/perl有perl嗎?有時它位於不同的位置(例如/ bin,/ usr/local/bin),而魔法不起作用。否則,請檢查您的腳本是可執行文件(chmod 755或類似文件) – vogomatix