что сценарий сможет найти Perl
Убедитесь, что сценарий сможет найти Perl
Unix
Операционной системе Unix можно объяснить, что для запуска сценария надо вызвать интерпретатор Perl, если в первой строке файла находится следующий текст (учтите, что такой строки не требуется, если вы запускаете сценарий на выполнение обычным способом):
#!/usr/local/bin/perl # Use Perl
Строчка с такой специфической синтаксической конструкцией, как
#!, обязатель но должна стоять в файле первой. Эта строка содержит ссылку на каталог, в котором на большинстве компьютеров с операционной системой Unix располагается интерпретатор Perl. Perl также может располагаться в другом месте — например, /usr /bin/perl (обратите внимание, что на многих машинах оба пути ссылаются на один и тот же файл). Чтобы выяснить, где находится Perl, используйте команду
which perl.
Чтобы указать, что вам требуется Perl 5, для большинства систем можно использовать строку
#!/usr/local/bin/perl5 # Use Perl 5
При запуске интерпретатора, чтобы гарантировать вывод предупреждающих сообщений по мере обработки интерпретатором вашего кода, рекомендуется использовать ключ
-w. (На самом деле интерпретатор Perl компилирует код целиком при его загрузке. Поэтому предупреждающие сообщения появятся сразу же, если только вы не загружаете откомпилированный код позже. Это можно сделать с помощью команды Perl
require, которая загружает код во время выполнения сценария. Мы увидим, как это делается, в главе 15.)
#!/usr/local/bin/perl5 -w # Use Perl 5 with warnings
Поскольку во многих системах Unix строка с шаблоном
#! обрезается после 32 знаков, при попытке ввести для Perl длинный путь вы встретитесь с проблемой:
#!/usr/local/bin/users/standard/build36/perl5
В подобных случаях, а также если ваша система не поддерживает синтаксичес кие конструкции вида
!#, можно использовать вызов командного интерпретато ра sh с тем, чтобы запустить Perl «обычным путем»:
#!/usr/sh
eval `/usr/local/bin/perl5 -wS $0 ${1+"$@"}' if 0;
Здесь используется команда
eval командного интерпретатора с тем, чтобы выполнить запуск Perl. Ключ
-w обеспечивает вывод предупреждающих сообщений. Параметр
$0 должен включать в себя полный путь, однако иногда этот механизм не работает. Поэтому ключ
-S заставляет Perl при необходимости самостоятель но искать сценарий. Странная конструкция
${1+"$@"}
Содержание Назад Вперед