当我用Perl执行我的Python脚本时,为什么我没有得到任何语法错误?
我只是写了一些testingpython代码到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