当我用Perl执行我的Python脚本时为什么不会得到任何语法错误?

问题:

我刚写了一些测试python代码到test.py,我正在启动它如下:

perl test.py

过了一会我意识到我的错误。我说“过了一会儿”,因为
Python代码实际上被正确执行,仿佛在Python解释器中!
为什么我的Perl解释我的Python? test.py看起来像这样:

#!/usr/bin/python

...Python code here...

有趣的是,如果我做相反(即调用python something.pl),我会收到很多语法错误。

回答:

perlrun

如果#!行不包含单词“perl”和单词“indir”,则执行#!之后命名的程序而不是Perl解释器。这有点奇怪,但它帮助人们在不做#!的机器上,因为他们可以告诉程序他们的SHELL是/usr/bin/perl,然后Perl将程序发送到正确的解释器。

例如,

$ cat >a
#!/bin/cat
meow

$ perl a
#!/bin/cat
meow

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why don’t I get any syntax errors when I execute my Python script with Perl?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

96 − = 88