++ed by:
MISHIN ILUX
4 non-PAUSE users
Author image Николай Мишин
and 6 contributors

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 библиотек

СМОТРИТЕ ТАКЖЕ

домашняя страница Perl

статьи Perl (O'Reilly)

the Comprehensive Perl Archive (Всеобъемлющий Perl Архив)

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>