Иллюстрированный самоучитель по Perl


         

Опции без параметров можно группировать,


peri -w -I/usr/include -0055 prog.pl filel file2

Опции без параметров можно группировать, задавая целую группу с одним дефисом. Следующие вызовы peri эквивалентны:

peri -wd prog.pl filel file2 peri -w -d prog.pl filel file2

Опции с параметрами таким способом задавать нельзя. Можно, однако, одну опцию с параметром добавить в конец группы опций без параметров:

peri -wdl/usr/include -0055 prog.pl filel file2

Передать опции для установки соответствующего режима работы интерпретатора можно непосредственно и из самой программы Perl. Первая строка сценария со специальным комментарием #! предназначена именно для этой цели:

#!/usr/bin/perl -w -d -I/usr/include

Теперь настало время узнать, какие опции существуют и как они влияют на режим работы интерпретатора. Мы решили сначала перечислить все возможные опции peri, а потом объяснить использование некоторых из них для выполнения задач системного администрирования UNIX. В табл. 14.1 представлены все опции с их кратким описанием. Советуем читателю внимательно ознакомиться с содержанием этой таблицы, так как для некоторых опций приведенное краткое описание в то же время является и исчерпывающим для понимания существа данной опции.

Таблица 14.1. Опции командной строки





















































































































































Опция



Назначение



-0 [nnn]



Задает разделитель записей файла ввода, устанавливая значение специальной переменной $/. Необязательный параметр nnn — восьмеричный код символа; если отсутствует, принимается равным 0 (код символа \0). Эта опция удобна, если при каждом запускесценария Perl в него необходимо передавать файлы с разными символами завершения записи







Включает режим авторазбиения строки ввода при совместном использовании с опцией -n или -р (строка передается функции split ( } , а результат ее выполнения помещается в специальный массив @г). Умалчиваемый разделитель — пробел; опция -F позволяет задать регулярное выражение для иного разделителя







Проверка синтаксиса программы без ее выполнения (блоки BEGIN, END и use выполняются, так как это необходимо для процесса компиляции)



-d[ : модуль]



Запускает сценарий в режиме отладки под управлением модуля отладки или трассировки, установленного как

Devel: : модуль



-D [число/список]



Устанавливает флаги отладки



-е ' строка кода '



Выполнение строки кода Perl, заданной параметром этой опции, а не файла сценария файл_программы, указанного в командной строке вызова интерпретатора. В строке кода можно задать несколько операторов, разделенных символом ';'. Допускается задание нескольких опций -е. (В Windows строка кода задается в двойных кавычках и для использования самих кавычек в коде Perl необходимо применять управляющую последовательность \".)



-F/per выраж/



Задает регулярное выражение для разделителя при автоматической разбивке строки файла ввода в случае задания опции -а. Например, -F/-.+/ определяет в качестве разделителя одно или более двоеточий. По умолчанию используется пробел / /. Символы "/" при задании per выраж не обязательны



-i {расширение]



Задает режим редактирования по месту файла, переданного как параметр в сценарий Perl. Используется совместно с опциями -n или -р. Редактирование выполняется по следующей схеме: файл переименовывается (если задано расширение), открывается файл вывода с именем исходного файла и все операции print ( ) сценария осуществляют вьшод в этот новый файл.

Параметр расширение используется для задания имени копии файла по следующей схеме: если в нем нет символов "*", то оно добавляется в конец имени исходного файла; каждый символ "*" этого параметра заменяется именем исходного файла



-Ткаталог



Задает каталог поиска сценариев Perl, выполняемых операциями do, require и use (сохраняется как элемент специального массива @INC). Также задает каталоги размещения файлов, включаемых в сценарий Perl директивой finclude препроцессора С. Можно использовать несколько опций для задания необходимого количества каталогов поиска



- 1 [ nnn ]



Включает автоматическую обработку концов строк ввода. Работа в этом режиме преследует две цели:

1. Автоматическое удаление завершающего символа записи, хранящегося в специальной переменной $/, при включенном режиме -n или -р;

2. Присваивание специальной переменной $\, в которой хранится символ завершения записи при выводе операторами print, восьмеричного значения nnn, представляющего код символа завершения; если этот параметр не задан, то переменной $\ присваивается текущее значение $ /



-m[-] мо дуль -М [ - ] модуль

-[гаМ][-] модуль= пар! [ , пар2 ] . .



Выполняет оператор use module О (опция -т) или use module (опция -м) перед выполнением сценария Perl. Если параметр модуль задан с дефисом, то use заменяется на по. Третья форма этих опций позволяет передать параметры в модуль при его загрузке



-n



Заданный сценарий Perl выполняется в цикле

while (0) { сценарий Perl }

Это позволяет обработать программой Perl в цикле каждую строку всех файлов, имена которых переданы в качестве параметров сценария Perl. Эта опция эмулирует функциональность sed с ключом -n и awk







Аналогичен опции -п, но добавляется печать каждой обрабатываемой строки, как в редакторе sed:

while (<>) { сценарий Perl } continue { print or die "-p destination: $!\n"; }







Перед компиляцией сценарий Perl обрабатывается препроцессором С, что позволяет использовать в нем команды препроцессора #define, # include и все команды условной компиляции С (#if, felse и т. д.). В опции -I можно задать каталоги расположения файлов, включаемых командой t include



-s



Включает режим синтаксического анализа строки вызова сценария Perl на наличие после имени файла сценария, но до параметров имен файлов "пользовательских опций" (параметров, начинающихся с дефиса). Такие параметры извлекаются из массива @ARGV и в программе объявляются и определяются переменные с именами введенных опций. Следующий сценарий напечатает "Задана опция optl" тогда и только тогда, когда он будет вызван с опцией -optl:

# ! /usr/bin/perl -s if ($optl) { print " Задана опция optl\n"; }



-S



Поиск файла программы Perl файл программы осуществляется с использованием значения переменной среды PATH







Включает режим проверки на безопасность полученных извне данных в операциях с файловой системой. Полезен при реализации CGI-сценариев. Эта опция должна быть первой в списке опций интерпретатора peri, если она применяется к сценарию



-u



Создание дампа ядра после компиляции сценария Perl. Последующее использование программы undump позволяет создать двоичный выполняемый файл сценария



_u



Разрешает выполнение небезопасных операций. При использовании этой опции в UNIX программа Perl выполняется в незащищенном режиме и ей предоставляется полный доступ к файловой системе



-V



Отображает номер версии, а также другую важную информацию об интерпретаторе peri



_V [ : переменная ]



Отображает информацию конфигурации интерпретатора peri (расположение необходимых библиотек, значения переменных среды и т. д.). Если задано имя переменной среды, отображает ее установленное значение



-W



Включает режим отображения предупреждений во время компиляции программы Perl. Рекомендуется всегда применять эту опцию



-х [каталог]



Извлекает и выполняет сценарий Perl, расположенный в текстовом файле. Эта возможность удобна, если сценарий прислан по электронной почте. Интерпретатор сканирует файл, пока не найдет строку, начинающуюся с символов "# ! " и содержащую слово "peri". После этого выполняется сценарий до лексемы END . Если задан параметр каталог, то перед выполнением сценария он становится текущим

<

Содержание  Назад  Вперед