有人可以解釋通過文件關聯調用perl腳本與通過perl.exe
明確調用相同腳本之間的區別嗎?Windows上的Perl,文件關聯和I/O重定向
顯然,當通過文件關聯調用腳本時I/O重定向不起作用,我真的很想知道爲什麼。
E.g.看看Activestate FAQ for Perl on Windows。只要腳本沒有通過重定向接收輸入,cat file
示例就可以正常工作。所以
cat file.txt
按預期工作,但
whoami | cat.pl
沒有。不僅.pl
擴展需要,但顯然whoami
的輸出沒有管理到腳本中。該腳本已運行(可通過修改示例cat.pl
腳本進行驗證),但由於某種原因,它不會收到輸出爲whoami
的輸出。
但是,如果我這樣調用腳本:
whoami | perl cat.pl
一切正常。
顯然,通過文件關聯運行腳本和明確調用perl.exe
腳本之間存在着重要的區別。
FAQ提到了這個問題,並指出使用pl2bat
爲腳本生成bat文件封面可以修復問題,但我不明白爲什麼這是必需的。
請賜教。
你的意思是什麼,當你說「文件關聯」? – innaM 2009-08-17 09:39:01
通過文件關聯我的意思是.pl擴展名是與perl.exe相關的。請參閱鏈接的FAQ,因爲它包含了詳細信息。 – 2009-08-17 09:48:07