使用Perl执行Python脚本时,为什么不会出现语法错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Perl执行Python脚本时,为什么不会出现语法错误?相关的知识,希望对你有一定的参考价值。

我刚刚在test.py中编写了一些测试python代码,我将按如下方式启动它:

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

以上是关于使用Perl执行Python脚本时,为什么不会出现语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

perl/shell 脚本中存在语法错误时的 rpm 构建预防

为啥子进程中的管道有时会中断,有时不会?

Perl Apache:Perl 脚本显示为纯文本

在cmd 中执行perl脚本报错 Unrecognized character

Perl 脚本不等待 .bat 文件完成并继续执行

0 python和perl区别