Могу ли я обойтись без строки shebang в моих скриптах Unix Perl? - PullRequest
0 голосов
/ 19 ноября 2011

Могу ли я написать программу на Perl, в которой моя первая строка не #!/path/?

Спасибо.

Ответы [ 4 ]

8 голосов
/ 19 ноября 2011

Шебанг (#!) необходим только в том случае, если вы хотите вызвать скрипт непосредственно из командной строки, например, ./yourscript. Вы всегда можете сделать perl yourscript и пропустить шебанг.

6 голосов
/ 19 ноября 2011

Если ваша задача жестко кодировать постоянный путь (например, #! / Usr / bin / perl в отличие от #! / Usr / local / bin / perl), тогда используйте:

#!/usr/bin/env perl

Это позволяет искать интерпретатор Perl в вашем PATH, делая ваши сценарии более переносимыми (кроме Windows).

4 голосов
/ 19 ноября 2011

Да, с perldoc perlrun (под переключателем -S):

#!/bin/sh
eval 'exec /usr/bin/perl -wS $0 ${1+"$@"}'
    if $running_under_some_shell;

См. Эту документацию для полной истории.

0 голосов
/ 19 ноября 2011

Если вы сделаете это, вам придется явно вызывать Perl. Если эта строка есть, то система знает, что это сценарий Perl, поэтому, когда вы делаете сценарий исполняемым, вы можете просто написать ./script

...