Почему я не получаю никаких синтаксических ошибок при выполнении моего скрипта Python с Perl?


Я только что написал тестовый код python в test.py, и я запускаю его следующим образом:

perl test.py

через некоторое время я понял свою ошибку. Я говорю: "через некоторое время", потому что Код Python фактически правильно выполняется, как будто в интерпретаторе Python!

почему мой Perl интерпретирует мой Python? test.py выглядит так:

#!/usr/bin/python

...Python code here...

интересно, если я делаю наоборот (т. е. вызов python something.pl) Я получаю много синтаксических ошибок.

1 83

1 ответ:

С perlrun,

если #! строка не содержит ни слова "perl" ни слова "indir" программа названа в честь #! выполняется вместо интерпретатора Perl. Это немного странно, но это помогает людям на машинах, которые не делают #!, потому что они могут сказать программе, что их оболочка / usr / bin / perl, и Perl затем отправит программу в правильный интерпретатор для их.

например,

$ cat a
#!/bin/cat
meow

$ perl a
#!/bin/cat
meow