我在Cygwin上使用Perl 5.14.2,突然它拒绝运行最简单的脚本:
#!/usr/bin/perl
use strict;
use warnings;
print "hello world!\n";
尝试执行此操作会导致Perl什么也不做,$?
也不包含任何内容:
Administrator@Windows7 /cygdrive/d/Development/Perl
$ perl helloworld.plx
Administrator@Windows7 /cygdrive/d/Development/Perl
$ echo $?
0
但是,我之前编写了更复杂的脚本,它们确实运行了:
Administrator@Windows7 /cygdrive/d/Development/Perl
$ perl siteinfo.plx
Site info : google.com
________________________________________________________________________________
Whois : ( ... whois info printed here ...)
hpHosts : Not Listed
我真的无法理解这里到底发生了什么。我已经尝试重新安装Perl但没有运气。
非常感谢任何帮助。
答案 0 :(得分:0)
这个问题的答案非常愚蠢:
我的文本编辑器设置为使用Macintosh EOL格式生成文本文件。将其转换为Unix / Windows格式可以解决问题。
然而,我发现奇怪的一件事是Perl不会通知这个问题,而是它什么也没做。
答案 1 :(得分:0)
使用B :: Deparse查看perl如何解析您的程序
$ perl -MO=Deparse,-p -e ""
-e syntax OK
$ perl -MO=Deparse,-p -e "#!/usr/bin/perl -- die 666; "
-e syntax OK
$ perl -MO=Deparse,-p -e "die 666; "
die(666);
-e syntax OK