有人能解释一下通过文件关联调用perl脚本与通过
显然,当通过文件关联调用脚本时,I/O重定向效果不佳,我真的很想知道为什么。
例如,请查看Windows上Perl的Activestate FAQ。只要脚本没有通过重定向接收其输入,
正常工作,但是
perl.exe
显式调用相同脚本之间的区别吗?显然,当通过文件关联调用脚本时,I/O重定向效果不佳,我真的很想知道为什么。
例如,请查看Windows上Perl的Activestate FAQ。只要脚本没有通过重定向接收其输入,
cat file
示例就可以完美运行。cat file.txt
正常工作,但是
whoami | cat.pl
不行。不仅需要 .pl
扩展名,而且显然 whoami
的输出没有被传递到脚本中。脚本已经运行(可以通过修改示例的 cat.pl
脚本进行验证),但由于某种原因它没有接收到 whoami
的输出作为输入。
但是,如果我像这样调用脚本:
whoami | perl cat.pl
一切都按预期运行。
显然,通过文件关联运行脚本和显式调用 perl.exe
命令来运行脚本之间存在重要的区别。
常见问题解答中提到了这个问题,并指出使用 pl2bat
生成批处理文件可以解决这个问题,但我不明白为什么需要这样做。
请给我解释一下。