[python] Perl로 Python 스크립트를 실행할 때 구문 오류가 발생하지 않는 이유는 무엇입니까?

방금 테스트 용 Python 코드를에 썼고 test.py다음과 같이 시작합니다.

perl test.py

잠시 후 나는 나의 실수를 깨달았다. 파이썬 코드는 마치 파이썬 인터프리터처럼 실제로 올바르게 실행되기 때문에 “잠시 후”라고 말합니다!

Perl이 Python을 해석하는 이유는 무엇입니까? test.py다음과 같이 보입니다.

#!/usr/bin/python

...Python code here...

흥미롭게도 반대로하면 (즉, call python something.pl) 많은 구문 오류가 발생합니다.



답변

에서 perlrun ,

는 IF #!라인은 단어 “펄”나 단어가 이름을 딴 “든지 indir”프로그램 포함하지 않는 #!대신에 펄 인터프리터의 실행을. 이것은 약간 기이하지만,하지 않는 기계를 사용하는 사람들에게 도움이됩니다 #!. 왜냐하면 그들은 그들의 SHELL이 / usr / bin / perl 이라고 프로그램에 알릴 수 있기 때문입니다 . 그리고 Perl은 올바른 인터프리터에게 프로그램을 보낼 것입니다.

예를 들면

$ cat a
#!/bin/cat
meow

$ perl a
#!/bin/cat
meow


답변