НАИМЕНОВАНИЕ
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 Perl краткое введение в ссылки
perldsc Perl введение в структуры данных
perllol Структуры данных Perl: массивы массивов
perlrequick Регулярные выражения Perl быстрый старт
perlretut Perl регулярные выражения учебник
perlootut Perl OO учебник для начинающих
perlperf Perl Производительность и Методы оптимизации
perlstyle Perl руководство по стилю программирования
perlcheat Perl шпаргалка
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 open() учебник
perlpacktut Perl pack() и unpack() учебник
perlpod Perl простая старая документация
perlpodspec Perl простая старая документация спецификация формата
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 введение в Unicode
perlunicode Perl поддержка юникода
perlunifaq Perl Unicode FAQ
perluniprops Каталог свойств Unicode в Perl
perlunitut Perl Unicode учебник
perlebcdic Соображения для запуска Perl на EBCDIC платформах
perlsec Perl безопасность
perlmod Perl модули: как они работают
perlmodlib Perl модули: как писать и использовать
perlmodstyle Perl модули: правильный стиль написания модулей
perlmodinstall Perl модули: как установить из CPAN
perlnewmod Perl модули: подготовка нового модуля для опубликования
perlpragma Perl модули: написание пользовательской pragma (директивы компилятору)
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 внутренние функции для тех, кто делает расширения
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 репозиторием
Разное
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 Cписок экспериментальных функций в 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 на самом деле обозначает Паталогически Эклектичный Мусорный Листер, но никому не говорите, что я это сказал.
ПРИМЕЧАНИЯ
Perl девиз: "Есть больше чем один способ сделать это." "There's more than one way to do it." Дальнейшие пророчества остаются в качестве упражнения для читателя.
Три основные достоинства программиста: лень, нетерпение, и высокомерие. См. Camel Book почему.
ПЕРЕВОДЧИКИ
Николай Мишин
<mishin@cpan.org>