Windows XP で ActiveState Perl 5.10.1 を実行しています。
次のプログラムは実行されますが、コマンド ラインに何も出力されません。
#!c:/perl/bin/perl.exe
use strict;
use warnings;
print "foo\n";
シバン行を削除すると、期待どおり、出力として「foo」が表示されます。
ファイルの関連付けのみを使用して実行したりfoo.pl
( )、PATH 経由で perl を参照したり ( perl foo.pl
)、perl 実行可能ファイルを直接参照したりしても( )、同じ結果が得られますc:\perl\bin\perl.exe foo.pl
。
シバン行がなくてもスクリプトが機能する理由はわかりませんが、シバン行があると出力が得られません。私の理解では、シバン行は Windows の Perl に厳密には必要ではありませんが、-w
...
明示的にハンドル STDOUT を作成しても違いはありません。print STDOUT "foo\n";
これは私を完全に夢中にさせています。ヒントをいただければ幸いです。