=encoding utf8

=head1 Имя

perl - интерпретатор языка Perl5

=head1 СИНТАКСИС

B<perl>	S<[ B<-sTtuUWX> ]>
	S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
	S<[ B<-cw> ] [ B<-d>[B<t>][:I<отладчик>] ] [ B<-D>[I<кол-во/список>] ]>
	S<[ B<-pna> ] [ B<-F>I<шаблон> ] [ B<-l>[I<восьмеричный>] ] [ B<-0>[I<восьмеричный/шестнадцатеричный>] ]>
	S<[ B<-I>I<dir> ] [ B<-m>[B<->]I<модуль> ] [ B<-M>[B<->]I<'модуль...'> ] [ B<-f> ]>
	S<[ B<-C [I<кол-во/список>] >]>
	S<[ B<-S> ]>
	S<[ B<-x>[I<dir>] ]>
	S<[ B<-i>[I<расширение>] ]>
	S<[ [B<-e>|B<-E>] I<'команда'> ] [ B<--> ] [ I<файл программы> ] [ I<аргумент> ]...>

Для получения дополнительной информации на эти параметры, можно запустить C<perldoc perlrun>.

=head1 ПОЛУЧЕНИЕ ПОМОЩИ

F<perldoc> Программа дает вам доступ ко всей документации, которая поставляется с Perl.  Вы можете получить более подробную документацию, руководства и интернет-сообщество поддержки на L<http://www.perl.org/>.

Если вы новичок в Perl, вы должны начать, запустив C<perldoc perlintro>, которая представляет собой общее введение для новичков и дает некоторые базовые навыки, чтобы помочь вам ориентироваться в остальной обширной документации Perl.  Запустите С<perldoc perldoc> чтобы узнать больше возможностей, которые вы можете сделать с F<perldoc> .

Для удобства чтения руководство Perl был разделено на несколько частей.

=begin buildtoc

# Этот раздел парсится  Porting/pod_lib.pl  для использования  pod/buildtoc и т.д.

flag =g  perluniprops perlmodlib perlapi perlintern
flag =go perltoc
flag =ro perlcn perljp perlko perltw
flag =   perlvms

path perlfaq.*               cpan/perlfaq/lib/
path perlglossary            cpan/perlfaq/lib/
path perlxs(?:tut|typemap)?  dist/ExtUtils-ParseXS/lib/
path perldoc                 cpan/Pod-Perldoc/lib/

aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp

=end buildtoc

=head2 Обзор

    perl		Perl обзор (этот раздел)
    perlintro		Введение в Perl для начинающих
    perlrun		Выполнение программы на Perl и его опции
    perltoc		Perl документация Оглавление

=head2 Учебники

    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		Сети

=head2 Справочное руководство

    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 Глоссарий

=head2 Внутренности и Язык интерфейса для 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 репозиторием

=head2 Разное

    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

=head2 Для разных языков

=for buildtoc flag +r

    perlcn		Perl для упрощенного китайского  (в EUC-CN)
    perljp		Perl  для японского (в EUC-JP)
    perlko		Perl для корейского (в EUC-KR)
    perltw		Perl для традиционного китайского (в Big5)

=head2 Для отдельных платформ

    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

=for buildtoc flag -r

=head2 Заглушки для удаленных документов

    perlboot		
    perlbot		
    perltodo
    perltooc		
    perltoot		

=for buildtoc __END__

На Unix-подобных системах, эти файлы документов, как правило, также будет доступны как страницы руководств для использования с программой F<man> .

Некоторая документация не доступна в виде man страниц, так что, если перекрестные ссылки не найдены в мане, то попробуйте их с помощью L<perldoc>.  Perldoc также предоставляет документацию по функциям (с опцией B<-f>). См. C<perldoc --help> (или C<perldoc perldoc> или C<man perldoc>)
для других полезных вариантов, которые L<perldoc> может предложить.

В общем, если что-то странное пошло не так с вашей программой, и вы не уверены, где вы должны искать помощи, попробуйте  поставить в начале программы 
B<use strict> и B<use warnings>.  Они будут часто указывают именно там, где беда.

=head1 ОПИСАНИЕ

Perl официально предназначается как Язык для Практического Извлечения и Создания отчетов, кроме случаев, когда это не так.

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

Язык больше предназначен для практических (простота в использовании, эффективность, полнота), чем для красивых решений (крошечность, элегантность, минимализм).  Он сочетает в себе
(по мнению автора, во всяком случае) некоторые из лучших особенностей B<sed>,
B<awk>, и B<sh>, что делает его знакомым и простым, быстрым и удобным для пользователей Unix при решении досадных проблем.  Его обще-целевые программистские возможности поддерживают процедурные, функциональные и объектно-ориентированных парадигмы программирования, что делает Perl удобным языком для долгого пути по крупным проектам, независимо от извилистости пути.

Корни Perl в обработке текста не были забыты на протяжении многих лет.
Он по-прежнему может похвастаться одними из самых мощных регулярных выражений, которые можно найти для любого текста, и поддержкой кодировки Unicode мирового класса.  Он обрабатывает все виды структурированного текста, также, через обширную коллекцию расширений.  Те библиотеки, которые лежат на CPAN, дают готовые решения поразительному множеству проблем.  Когда они не ставят стандартные библиотеки, они крадут из лучших 
-- точно так же, как сам Perl.

=head1 НАЛИЧИЕ

Perl доступен для большинства операционных систем, в том числе практически для всех Unix-подобных платформ.  См.  L<perlport/"Supported Platforms">
для ознакомления с перечнем.

=head1 ОКРУЖЕНИЕ

См. L<perlrun>.

=head1 АВТОР

Ларри Уолл <larry@wall.org>, с помощью кучи других людей.

Если ваша Perl история успеха и отзывы могут быть полезны тем, кто стремиться к поддержке использования Perl в своих приложениях, или если вы хотите просто выразить свою благодарность Ларри и Perl разработчикам, пожалуйста, напишите perl-thanks@perl.org .

=head1 ФАЙЛЫ

 "@INC"			место расположение Perl библиотек

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

 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

=head1 ДИАГНОСТИКА

Использование прагмы C<use strict>  гарантирует, что все переменные объявлены правильно и предотвращает другие злоупотребления от наследия функций Perl.

Прагма C<use warnings>  сообщает некоторые замечательную диагностику. Можно также использовать B<-w> флаг, о его использование, как правило, не рекомендуется, потому что он будет применяться ко всему исполняемуму коду Perl, в том числе, который не под вашим контролем.

См. L<perldiag> за разъяснениями всех сообщений диагностики Perl.  Прагма C<use
diagnostics>  автоматически включается в Perl обычно краткие предупреждения и ошибки в длинные формы.

Ошибки компиляции скажут вам номер строки ошибки, с указанием следующей лексемы(оператора) или тип маркера(оператора), который должен был быть рассмотрен.
(В скрипте Perl передается через B<-e> ключи, каждый
B<-e> считается одной линией.)

Setuid сценарии имеют дополнительные ограничения, которые могут производить сообщения об ошибках, такие как  "небезопасная зависимость".  См. L<perlsec>.

Мы упомянули, что вам обязательно надо рассмотреть возможность использования прагмы B<use warnings> ?

=head1 ОШИБКИ

Поведение, подразумеваемое прагмой B<use warnings> не является обязательным.

Perl отдает на милость определения вашей машины различных операций, таких как приведение типов, atof(), и с плавающей точкой 
вывод с sprintf().

Если ваш stdio требует искать eof(символ конца файла) между чтением и записью соответствующего потока, то это делает Perl.  (Это не относится к sysread()
и syswrite().)

Хотя ни один из встроенных типов данных не имеет любые произвольные ограничения на размер (кроме памяти), есть еще несколько произвольных ограничений: данное имя переменной не может быть длиннее 251 символов.  Номера строк отображаются диагностики внутренней памяти как короткие целые, поэтому они ограничиваются максимум 65535 (большие числа обычно под воздействием запахом).

Вы можете отправить ваши сообщения об ошибке (не забудьте включить полную информацию о конфигурации в качестве вывода myconfig программы в Perl дереве исходных текстов, или посредством C<perl -V>) на perlbug@perl.org .  Если вы преуспели в компиляции perl, the L<perlbug> сценарий в F<utils/> подкаталоге может быть использован, чтобы помочь для написания письма с отчетом об ошибке.

Perl на самом деле обозначает Паталогически Эклектичный Мусорный Листер, но никому не говорите, что я сказал.

=head1 ПРИМЕЧАНИЯ

Perl девиз: "Есть больше чем один способ сделать это." "There's more than one way to do it." Пророчества, сколько еще остается в качестве упражнения для читателя.

Тремя основные достоинства программиста: лень, нетерпение, и высокомерие.  См. Camel Book почему.


=head1 ПЕРЕВОДЧИКИ

=over

=item * Николай Мишин (Tech & Language Lead)

=back