【发布时间】:2010-11-20 04:31:00
【问题描述】:
有人可以解释通过文件关联调用 perl 脚本与通过perl.exe 显式调用同一脚本之间的区别吗?
显然,当通过文件关联调用脚本时,I/O 重定向不能很好地工作,我真的很想知道为什么。
例如看看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 文件封面可以解决这个问题,但我不明白为什么这是必要的。
请赐教。
【问题讨论】:
-
你说的“文件关联”到底是什么意思?
-
通过文件关联,我的意思是 .pl 扩展名与 perl.exe 关联。请查看链接的常见问题解答,因为它包含详细信息。
标签: windows perl redirect file-association