Синтаксис PERl
perl [ключи] файл аргументыПеред стартом Perl ищет скрипт (программу) в следующем порядке:
- В командной строке если указан ключ '-e'
- Содержимое файла указанного в командной строке. В первой строке можно указывать #!/usr/bin/perl для "автоматического" запуска скрипта.
- Стандартный ввод/вывод, если не указан файл или аргументы, содержащие имя файла. Для передачи аргументов скрипту из стандартного потока, имя файла в командной строке обозначается символом '-'.
Ключи:
- -O цифры- Код символа-разделителя записей. По умолчанию \0.
- -a- Включает режим автоматического разделения (split) переменной $_ в массив $F. Применяется с ключами -n и -p.
- -c- Выполняется синтаксическая проверка скрипта и выход без запуска.
- -d- Запуск в режиме интерактивной отладки.
- -D число или D список- Установить флаги отладки Perl. Например -d14 проследить как Perl исполняет вашу программу.
1 p Синтаксический разбор 2 s Состояние стека 4 l Состояние стека имен 8 t Трассировка исполнения 16 o Создание оператора узла 32 c Строковое/числовое преобразование 64 p Вывод команды препроцессора для -P 128 m Распределение памяти 256 f Обработка формата 512 r Синтаксический разбор регулярных выражений 1024 x Дамп синтаксического дерева 2048 u Проверка защиты 4096 L "Утечка" памяти 8192 H Дамп хеша 16384 X Распределение scratchpad 32768 D Очистка - -e команда- Выполнение скрипта из одной строки указанного в командной строке.
- -F шаблон- Указывает шаблон разделения в режиме работы с ключом -a
- -i расширение- Применяется для резервной копии файла обрабатываемого оператором '<>'. Оригинал хранится в файле с тем же именем, что и исходный, но с указанным расширением.
Пример:perl -p -i.old -e "s/рядовой/ефрейтор/" file
- Поменять все слова "рядовой" на "ефрейтор" в файле file, а оригинал записать в файле file.old
- -I директория- Директория includ- файлов для С препроцессора. Применяется с ключом -P по умолчанию это /usr/include и /usr/lib/perl.
- -l число- Автоматическая обработка символа конца строки. Работает в двух случаях.
- Отбрасывает последний символ читаемых строк для режимов -n и -p
- Присваивает указанное значение переменной $\. Таким образом к концу каждой строки выводимой оператором print добавляется этот символ.
- Отбрасывает последний символ читаемых строк для режимов -n и -p
- -n- Зацикливает скрипт и последовательно обрабатывает файлы указанные в командной строке. Позволяет создавать команды подобные sed или awk. Операторы BEGIN и END дают возможность делать начальные и конечные установки. Содержимое файлов не выводится.
- -p- То же что и -n, но печатает обрабатываемые строки файлов.
- -P- Предварительная обработка препроцессором языка С. Будьте внимательны и не применяйте в комментариях слова 'if', 'else' или 'define', т.к. это команды С - препроцессора.
- -s- Включение режима обработки ключей командной строки запуска скрипта. Все аргументы с символом '-' в начале, считаются ключом, и переменным с таким же именем присваивается значение true.
- -S- Использование системной переменной PATH для поиска скрипта. Данный ключ применяется в системах, невоспринимающих последовательность "#!" в начале скрипта для указания интерпретатора.
- -T- Режим проверки "дыр" в защите. Обычно это нужно для программ, работающих в режиме повышенной привилегии (setuid, setguid). Желательно для CGI скриптов.
- -u- Принудительный дамп памяти после компиляции скрипта. Этот дамп можно потом использовать для создания исполняемого файла с помощью программы undump.
- -U- Разрешение выполнять опасные операции. Например, стереть директорию или выполнять явно не закрытую программу.
- -v- Вывод номера версии Perl.
- -w- Вывод имен переменных, используемых только один раз, имен скаляров, используемых до их определения, имен переопределяемых подпрограмм, ссылок на неопределенные указатели файлов, попыток записи в файлы, открытых только на "чтение", употребление некорректных записей чисел, использование массивов как скаляров, рекурсия более 100 уровней.
- -x директория- Режим запуска скрипта, вставленного в файл, содержащий обычный текст. Началом скрипта считается строка с символами '#!' в начале и содержащая слово perl. Концом - строка с '__END__' Указанная директория становится текущей в момент исполнения. Если необходимо читать последующие строки, то это лучше делать через указатель файла DATA.