NAME/НАИМЕНОВАНИЕ
perl - Интерпретатор языка Perl5
СИНТАКСИС
perl [ -sTtuUWX ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:отладчик] ] [ -D[кол-во/список] ] [ -pna ] [ -Fшаблон ] [ -l[восьмеричный] ] [ -0[восьмеричный/шестнадцатеричный] ] [ -Idir ] [ -m[-]модуль ] [ -M[-]'модуль...' ] [ -f ] [ -C [кол-во/список] ] [ -S ] [ -x[dir] ] [ -i[расширение] ] [ [-e|-E] 'команда' ] [ -- ] [ файл программы ] [ аргумент ]...
Для получения дополнительной информации по этим параметрам, можно запустить perldoc perlrun
.
ПОЛУЧЕНИЕ ПОМОЩИ
perldoc Программа дает вам доступ ко всей документации, которая поставляется с Perl. Вы можете получить более подробную документацию, руководства и интернет-сообщество поддержки на http://www.perl.org/.
Если вы новичок в Perl, то вы должны начать, запустив perldoc perlintro
, которая представляет собой общее введение для новичков и дает некоторые базовые навыки, чтобы помочь вам ориентироваться в остальной обширной документации Perl. Запустите С<perldoc perldoc> чтобы узнать больше о том, как вы можете работать с perldoc .
Для удобства чтения руководство Perl был разделено на несколько частей.
Обзор
perl Perl обзор (этот раздел)
perlintro Введение в Perl для начинающих
perlrun Выполнение программы на Perl и его опции
perltoc Perl документация Оглавление
Учебники
perlreftut Краткое руководство по ссылкам, которое написал Марк
perldsc Perl введение в структуры данных
perllol Структуры данных Perl: массивы массивов
perlrequick Быстрый старт использования регулярных выражений Perl
perlretut Учебник регулярных выражений Perl
perlootut Руководство по Объектно-ориентированному Программированию в Perl
perlperf Perl Производительность и Методы оптимизации
perlstyle Стиль написания Perl-кода
perlcheat Perl 5 Шпаргалка
perltrap Perl ловушки для неосторожных
perldebtut Учебник по отладке Perl кода
perlfaq Perl часто задаваемые вопросы
perlfaq1 Общие вопросы о Perl
perlfaq2 Получение и изучение Perl
perlfaq3 Инструменты программирования
perlfaq4 Манипуляция данными
perlfaq5 Файлы и форматы
perlfaq6 Регулярные выражения
perlfaq7 Проблемы языка Perl
perlfaq8 Взаимодействие с системой
perlfaq9 Сети
Справочное руководство
perlsyn Синтаксис Perl
perldata Структуры данных Perl
perlop Perl операторы и их приоритет
perlsub Perl подпрограммы
perlfunc Perl встроенные функции
perlopentut Учебник по открытию разных сущностей в Perl
perlpacktut Учебник по pack и unpack
perlpod Формат простой старой документации (Plain Old Documentation POD)
perlpodspec Простая старая документация: спецификация формата и примечания
perlpodstyle Руководство по стилю Perl POD
perldiag Perl диагностические сообщения
perllexwarn Perl предупреждения и управление ими
perldebug Perl отладка
perlvar Perl предопределенные переменные
perlre Регулярные выражения Perl
perlrebackslash Бэкслеш и Эскейп последовательности в регулярных выражениях Perl
perlrecharclass Классы символов регулярных выражений Perl
perlreref Справочник регулярных выражений Perl
perlref Perl ссылки, остальная часть истории
perlform Perl форматы
perlobj Perl объекты
perltie Perl объекты скрытые за простыми переменными
perldbmfilter Perl DBM фильтры
perlipc Perl межпроцессное взаимодействие
perlfork Perl fork() информация
perlnumber Perl семантики числа
perlthrtut Учебник на потокам в Perl
perlport Perl руководство по переносимости
perllocale Perl языковая поддержка
perluniintro Введение в Perl Юникод
perlunicode Поддержка Юникода в Perl
perlunifaq Perl Unicode FAQ
perluniprops Каталог свойств Unicode в Perl
perlunitut Учебник по Юникоду в Perl
perlebcdic Соображения для запуска Perl на EBCDIC платформах
perlsec Perl безопасность
perlmod Perl модули: как они работают
perlmodlib Perl модули: как писать и использовать
perlmodstyle Perl модули: правильный стиль написания модулей
perlmodinstall Perl модули: как установить из CPAN
perlnewmod Perl модули: подготовка нового модуля для опубликования
perlpragma Perl модули: как писать пользовательские прагмы (директивы компилятору)
perlutil утилиты, идущие в комплекте с поставкой Perl
perlfilter Perl исходные файлы
perldtrace Perl поддержка для DTrace
perlglossary Perl Глоссарий
Внутренности и Язык интерфейса для C
perlembed Perl пути для встраивания perl в ваши C или C++ приложения
perldebguts Perl внутренности отладки и советы
perlxstut Perl XS учебник
perlxs Perl XS интерфейс прикладного программирования
perlxstypemap Perl XS C/Perl инструменты преобразования типов
perlclib Внутренние замены для стандартных библиотечных функций C
perlguts Введение в Perl API, Perl внутренние функции для тех, кто делает расширения
perlcall Perl соглашения о вызове из C
perlmroapi Perl метод резолюции интерфейса плагинов
perlreapi Интерфейс плагинов к регулярным выражениям Perl
perlreguts Описание машины регулярных выражений Perl
perlapi Perl API объявления (автоматически сгенерированные)
perlintern Perl внутренние функции (автоматически сгенерированные)
perliol C API для Perl реализации ввода-вывода в слоях
perlapio Perl внутренний интерфейс ввода-вывода абстрактный интерфейс
perlhack Руководство хакера Perl
perlsource Руководство по дереву исходного кода Perl
perlinterp Обзор исходного кода интерпретатора Perl и как он работает
perlhacktut Путь по созданию простого патча на C
perlhacktips Советы как хачить(взламывать) код ядра Perl на С
perlpolicy Perl политики(установки) разработки
perlgit Использование Git с Perl репозиторием
Разное
perlsecret Cекретные операторы и константы Perl
perlbook Информация о книгах по Perl
perlcommunity Информация о Perl сообществе
perldoc Perl-документация в POD-формате
perlhist Записи истории Perl
perldelta Perl изменения с предыдущей версии
perl5180delta Perl изменения в версии 5.18.0
perl5161delta Perl изменения в версии 5.16.1
perl5162delta Perl изменения в версии 5.16.2
perl5163delta Perl изменения в версии 5.16.3
perl5160delta Perl изменения в версии 5.16.0
perl5144delta Perl изменения в версии 5.14.4
perl5143delta Perl изменения в версии 5.14.3
perl5142delta Perl изменения в версии 5.14.2
perl5141delta Perl изменения в версии 5.14.1
perl5140delta Perl изменения в версии 5.14.0
perl5125delta Perl изменения в версии 5.12.5
perl5124delta Perl изменения в версии 5.12.4
perl5123delta Perl изменения в версии 5.12.3
perl5122delta Perl изменения в версии 5.12.2
perl5121delta Perl изменения в версии 5.12.1
perl5120delta Perl изменения в версии 5.12.0
perl5101delta Perl изменения в версии 5.10.1
perl5100delta Perl изменения в версии 5.10.0
perl589delta Perl изменения в версии 5.8.9
perl588delta Perl изменения в версии 5.8.8
perl587delta Perl изменения в версии 5.8.7
perl586delta Perl изменения в версии 5.8.6
perl585delta Perl изменения в версии 5.8.5
perl584delta Perl изменения в версии 5.8.4
perl583delta Perl изменения в версии 5.8.3
perl582delta Perl изменения в версии 5.8.2
perl581delta Perl изменения в версии 5.8.1
perl58delta Perl изменения в версии 5.8.0
perl561delta Perl изменения в версии 5.6.1
perl56delta Perl изменения в версии 5.6
perl5005delta Perl изменения в версии 5.005
perl5004delta Perl изменения в версии 5.004
perlexperiment Список экспериментальных функций в Perl
perlartistic Perl Лицензия Художников (Artistic License)
perlgpl Универсальная Общественная Лицензия GNU
Для разных языков
perlcn Perl для упрощенного китайского (в EUC-CN)
perljp Perl для японского (в EUC-JP)
perlko Perl для корейского (в EUC-KR)
perltw Perl для традиционного китайского (в Big5)
Для отдельных платформ
perlaix Perl заметки для AIX
perlamiga Perl заметки для AmigaOS
perlbs2000 Perl заметки для POSIX-BC BS2000
perlce Perl заметки для WinCE
perlcygwin Perl заметки для Cygwin
perldgux Perl заметки для DG/UX
perldos Perl заметки для DOS
perlfreebsd Perl заметки для FreeBSD
perlhaiku Perl заметки для Haiku
perlhpux Perl заметки для HP-UX
perlhurd Perl заметки для Hurd
perlirix Perl заметки для Irix
perllinux Perl заметки для Linux
perlmacos Perl заметки для Mac OS (Classic)
perlmacosx Perl заметки для Mac OS X
perlnetware Perl заметки для NetWare
perlopenbsd Perl заметки для OpenBSD
perlos2 Perl заметки для OS/2
perlos390 Perl заметки для OS/390
perlos400 Perl заметки для OS/400
perlplan9 Perl заметки для Plan 9
perlqnx Perl заметки для QNX
perlriscos Perl заметки для RISC OS
perlsolaris Perl заметки для Solaris
perlsymbian Perl заметки для Symbian
perltru64 Perl заметки для Tru64
perlvms Perl заметки для VMS
perlvos Perl заметки для Stratus VOS
perlwin32 Perl заметки для Windows
Заглушки для удаленных документов
perlboot
perlbot
perltodo
perltooc
perltoot
На Unix-подобных системах, эти файлы, как правило, также будет доступны как страницы руководств для использования с программой man .
Некоторая документация не доступна в виде man страниц, так что, если перекрестные ссылки не найдены в мане, то попробуйте их с помощью perldoc. Perldoc также предоставляет документацию по функциям (с опцией -f). См. perldoc --help
(или perldoc perldoc
или man perldoc
) для других полезных вариантов, которые perldoc может предложить.
В общем, если что-то странное пошло не так с вашей программой, и вы не уверены, где вы должны искать помощи, попробуйте поставить в начале программы use strict и use warnings. Они будут часто указывают именно туда, где беда.
ОПИСАНИЕ
Perl официально предназначается как Язык для Практического Извлечения и Создания отчетов, кроме случаев, когда это не так.
Perl был первоначально языком, оптимизированным для анализа произвольных текстовых файлов, извлечения информации из этих текстовых файлов и печати отчетов на основе этой информации. Он быстро стал хорошим языком для многих систем управления задачами. По прошествии многих лет, Perl вырос в язык программирования общего назначения. Он широко используется для всего, от быстрых "однострочников" до полномасштабной разработки приложений.
Язык больше предназначен для практических (простота в использовании, эффективность, полнота), чем для красивых решений (крошечность, элегантность, минимализм). Он сочетает в себе (по мнению автора, во всяком случае) некоторые из лучших особенностей sed, awk, и sh, что делает его знакомым и простым, быстрым и удобным для пользователей Unix при решении досадных проблем. Его обще-целевые программистские возможности поддерживают процедурные, функциональные и объектно-ориентированных парадигмы программирования, что делает Perl удобным языком для долгого пути по крупным проектам, независимо от извилистости пути.
Корни Perl в обработке текста не были забыты на протяжении многих лет. Он по-прежнему может похвастаться одними из самых мощных регулярных выражений, которые можно найти для любого текста, и поддержкой кодировки Unicode мирового класса. Он обрабатывает все виды структурированного текста, также, через обширную коллекцию расширений. Те библиотеки, которые лежат на CPAN, дают готовые решения поразительному множеству проблем. Когда они не ставят стандартные библиотеки, они крадут из лучших -- точно так же, как сам Perl.
НАЛИЧИЕ
Perl доступен для большинства операционных систем, в том числе практически для всех Unix-подобных платформ. См. "Supported Platforms" in perlport для ознакомления с перечнем.
ОКРУЖЕНИЕ
См. perlrun.
АВТОР
Ларри Уолл <larry@wall.org>, с помощью кучи других людей.
Если ваша Perl история успеха и отзывы могут быть полезны тем, кто стремиться к поддержке использования Perl в своих приложениях, или если вы хотите просто выразить свою благодарность Ларри и Perl разработчикам, пожалуйста, напишите perl-thanks@perl.org .
ФАЙЛЫ
"@INC" место расположение Perl библиотек
СМОТРИТЕ ТАКЖЕ
http://www.perl.org/ домашняя страница Perl
http://www.perl.com/ статьи Perl (O'Reilly)
http://www.cpan.org/ the Comprehensive Perl Archive (Всеобъемлющий Perl Архив)
http://www.pm.org/ the Perl Mongers
ДИАГНОСТИКА
Использование прагмы use strict
гарантирует, что все переменные объявлены правильно и предотвращает другие злоупотребления функциями Perl.
Прагма use warnings
сообщает некоторую интересную диагностику. Можно также использовать -w флаг, но его использование, как правило, не рекомендуется, потому что он будет применяться ко всему исполняемому коду Perl, в том числе к тому, который не под вашим контролем.
См. perldiag за разъяснениями всех сообщений диагностики Perl. Прагма use diagnostics
автоматически включает в Perl обычно краткие предупреждения и ошибки в длинные формы.
Ошибки компиляции скажут вам номер строки ошибки, с указанием следующей лексемы(оператора) или тип маркера(оператора), который должен был быть рассмотрен. (В скрипте Perl передается через -e ключи, каждый -e считается одной линией.)
Setuid сценарии имеют дополнительные ограничения, которые могут производить сообщения об ошибках, такие как "небезопасная зависимость". См. perlsec.
Мы упомянули, что вам обязательно надо рассмотреть возможность использования прагмы use warnings ?
ОШИБКИ
Поведение, подразумеваемое прагмой use warnings не является обязательным.
Perl отдает на милость определения вашей машины различные операции, такие как приведение типов, atof(), и с плавающей точкой вывод с sprintf().
Если ваш stdio требует искать eof(символ конца файла) между чтением и записью соответствующего потока, то это делает Perl. (Это не относится к sysread() и syswrite().)
Хотя ни один из встроенных типов данных не имеет любые произвольные ограничения на размер (кроме памяти), есть еще несколько произвольных ограничений: данное имя переменной не может быть длиннее 251 символов. Номера строк отображаемой диагностики внутренней памяти как короткие целые, поэтому они ограничиваются максимум 65535 (большие числа обычно плохо пахнут).
Вы можете отправить ваши сообщения об ошибке (не забудьте включить полную информацию о конфигурации в качестве вывода myconfig программы в Perl дереве исходных текстов, или посредством perl -V
) на perlbug@perl.org . Если вы преуспели в компиляции perl, the perlbug сценарий в utils/ подкаталоге может быть использован, чтобы помочь для написания письма с отчетом об ошибке.
Perl на самом деле обозначает Патологически Эклектичный Мусорный Листер (Pathologically Eclectic Rubbish Lister), но никому не говорите, что я это сказал.
ПРИМЕЧАНИЯ
Perl девиз: "Есть больше чем один способ сделать это." "There's more than one way to do it." Дальнейшие пророчества остаются в качестве упражнения для читателя.
Три основные достоинства программиста: лень, нетерпение, и высокомерие. См. Camel Book почему.
ПЕРЕВОДЧИКИ
Николай Мишин
<mishin@cpan.org>