为什么我在用Perl执行Python脚本时没有语法错误?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (92)

我刚刚写了一些测试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

扫码关注云+社区

领取腾讯云代金券