我在 Windows XP 上运行 ActiveState Perl 5.10.1。
以下程序执行,但在命令行不产生输出:
#!c:/perl/bin/perl.exe
use strict;
use warnings;
print "foo\n";
如果我删除 shebang 行,我会得到 'foo' 显示为输出,正如预期的那样。
如果我只使用文件关联foo.pl
(perl foo.pl
c:\perl\bin\perl.exe foo.pl
我不明白为什么脚本在没有 shebang 行的情况下工作,但是当 shebang 行存在时我没有得到任何输出。我的理解是,对于 Windows 中的 Perl,shebang 行并不是绝对必要的,但如果您想使用诸如-w
...
如果我明确地使句柄 STDOUT 没有区别,即print STDOUT "foo\n";
这让我非常抓狂;任何提示将不胜感激。