Или, Вы можете иметь sh
заботьтесь о нем для Вас:
#!/bin/sh
exec perl -x "$0" "$@"
#!/usr/bin/perl
...
Да, это sh
и Perl все в одном файле.
От man perlrun
:
- x
говорит Perl, что программа встраивается в больший блок несвязанного текста, такой как в сообщении электронной почты. Ведущий мусор будет отброшен до первой строки, которая запускается с "#!" и содержит строку "perl". Будут применены любые значимые переключатели на той строке.
Этот подход только принимает путь sh
(который должен быть тем же на любой совместимой POSIX ОС), и что неинтерактивный экземпляр sh
имеет perl
где-нибудь в PATH
.
Что касается обеспечения сценария имеет исполняемый набор битов, можно всегда распределять его как tarball и иметь пользователей "щелчок правой кнопкой, извлечение здесь" из GUI. Если бы tarball содержал сценарий с исполняемым набором битов, то извлеченный сценарий должен иметь исполняемый набор битов.