Perl#

Perl - это интерпретатор, выполняющий скрипты, написанные на языке Perl.

Функциональные возможности интерпретатора:

  • Выполнение кода: при выполнении скрипта интерпретатор Perl сначала преобразует исходный код в промежуточный байт-код, а затем запускает его.

  • Поддержка регулярных выражений: предоставляет поддержку регулярных выражений, использующихся для поиска, анализа и изменения текстовых данных.

  • Обработка массивов и хешей: поддерживает работу со сложными структурами данных, такими как массивы и ассоциативные массивы (хеши).

  • Модульная система: поддерживает использование модулей.

  • Отладка кода: имеет встроенную возможность отладки с помощью специального режима.

  • Интерактивный режим: позволяет программе взаимодействовать с пользователем в реальном времени.

Установка

Интерпретатор Perl устанавливается с помощью команды dnf install perl-interpreter. Подробнее про работу пакетного менеджера DNF в разделе «Управление программными пакетами: установка, обновление, удаление».

Использование интерпретатора#

Для работы с интерпретатором используйте команду:

perl <options> -- <file> <argument>

Где:

  • <options> - опции;

  • -- - символ, отключающий дальнейшую обработку опций;

  • <file> - файл;

  • <argument> - аргумент.

Опции#

Опции интерпретатора приведены в таблице ниже.

Опции Perl#

Опция

Описание

-0<octal/hexadecimal>

Установить символ-разделитель записей $/ как восьмеричное (octal) или шестнадцатеричное (hexadecimal) число.
Если значение не указано, используется \0 (нулевой символ)

Включить автоматическое разделение входных данных на массив @F.
Используется вместе с -n или -p

-C <number/list>

Указать, какие потоки должны быть установлены при работе с Unicode, используя число (number) или список буквенных кодов (list). Возможные аргументы опции указаны в таблице «Аргументы опции -C»

Проверить синтаксис скрипта без его выполнения

-d, -dt

Запустить скрипт с отладчиком Perl. Если указывается t, при отладке будут использоваться потоки

-d:<MODULE>, -dt:<MODULE>

Запустить скрипт с отладчиком Perl, используя указанный модуль (MODULE). Если указывается t, при отладке будут использоваться потоки

-D<letters/numbers>

Установить флаги отладки, используя число (numbers) или список буквенных кодов (letters) Возможные флаги отладки указаны в таблице «Флаги отладки опции -D»

-e <command>

Выполнить код (command) Perl прямо из командной строки

-E <command>

Аналогично опции -e. Отличается тем, что автоматически включает все дополнительные функции в основном модуле компиляции

-f

Отключить выполнение $Config{sitelib}/sitecustomize.pl

-F<pattern>

Указать регулярное выражение для разделения строки на элементы массива @F (используется с -a). Регулярное выражение должно быть выделено в //, "" или '' и не должно содержать пробелы или символы со значением «ноль»

-h

Вывести краткую справку

-i<extension>

Отредактировать файл через командную строку. Если указано расширение (extension), создается резервная копия файла

-I<directory>

Добавить указанный каталог (directory) в @INC (список путей для поиска модулей)

-l<octnum>

Включить автоматическую обработку окончаний строк. При использовании с -n или -p автоматически удаляет $/ (разделитель входных записей). Также может переопределять переменную $\. Значение octnum задает символ разделителя. Если значение не указано, то используется текущее значение переменной $/

-m[-]module

Загрузить модуль перед выполнением скрипта. Если указан символ -, выполнение метода import отключается

-M[-]module, -[mM][-]module=arg[,arg]...

Аналогично опции -m. Отличается тем, что позволяет передавать аргументы (arg) модулю

-n

Запустить указанный код в цикле, входные данные будут обработаны построчно, но не выведутся автоматически

-p

Аналогично опции -n. Отличается тем, что добавляет вывод каждой обрабатываемой строки

-s

Использовать режим синтаксического анализа вызова командной строки на наличие пользовательских опций после имени скрипта. Любые найденные опции удаляются из @ARGV

-S

Найти скрипт в каталогах, указанных в переменной среды PATH

-T

Включить режим проверки безопасности полученных данных

-t

Аналогично опции -T. Отличается тем, что проверка будет выдавать предупреждения, а не ошибки. Рекомендуется использовать опцию -T

-u

Создать дамп ядра после компиляции скрипта

-U

Разрешить выполнение небезопасных операций

-v

Вывести информацию о версии

-V

Вывести подробную информацию о конфигурации Perl

-V:<configvar>

Вывести значение указанной переменной (configvar) конфигурации Perl

-w

Включить режим отображения предупреждений (warnings)

-W

Включить все предупреждения, даже если они отключены в коде

-X

Отключить все предупреждения, даже если они включены в коде

-x, -x<directory>

Игнорировать все до строки #!perl и выполнить только код после нее. Если указан каталог (directory), Perl перейдет в него перед выполнением скрипта

Аргументы опции -C#

Аргументы опции -C приведены в таблице ниже.

Аргументы опции -C#

Буквенный код

Число

Описание

I

1

Включает UTF-8 для STDIN

O

2

Включает UTF-8 для STDOUT

E

4

Включает UTF-8 для STDERR

S

7

Объединяет аргументы I (1), O (2) и E (4)

i

8

Устанавливает по умолчанию слой PerlIO для входных потоков

o

16

Устанавливает по умолчанию слой PerlIO для выходных потоков

D

24

Объединяет аргументы i (8) и o (16)

A

32

Включает UTF-8 для @ARGV

L

64

Делает аргументы IOEioA условными в зависимости от переменных среды локали (LC_ALL, LC_TYPE и LANG; в порядке убывания приоритета)

a

256

Запускает режим отладки

Флаги отладки опции -D#

Флаги отладки -D приведены в таблице ниже.

Флаги отладки опции -D#

Число

Буквенный код

Описание

1

p

Токенизация и анализ; с v отображает стек анализа

2

s

Стек снимков состояния; с v отображает все стеки

4

l

Контекстная (циклическая) обработка стека

8

t

Отслеживание выполнения

16

o

Метод и разрешение перегрузки

32

c

Преобразование строк/чисел

64

P

Вывод информации о профилировании, состояние ввода исходного файла

128

m

Выделение памяти и скалярных значений (Scalar Value)

256

f

Обработка формата

512

r

Анализ и выполнение регулярных выражений

1024

x

Дамп синтаксического дерева

2048

u

Проверки искажений

4096

U

Неофициальный, пользовательский взлом (зарезервировано для частного, неизданного использования)

16384

X

Распределение временного хранилища

32768

D

Очистка

65536

S

Распределение операционных блоков

131072

T

Токенизация

262144

R

Включение контрольных подсчетов выброшенных переменных (например, при использовании -Ds)

524288

J

Отображение флагов s, t, P на операционном коде в пакете DB

1048576

v

Увеличение объема вывода в сочетании с другими флагами

2097152

C

Копирование при записи

4194304

A

Проверка согласованности внутренних структур

8388608

q

Отключение вывода EXECUTING-сообщений

16777216

M

Отслеживание правильного сочетания разрешений

33554432

B

Вывод определений подпрограмм, включая специальные блоки, такие как BEGIN

67108864

L

Отслеживание информации о локали

134217728

i

Отслеживание обработки слоя PerlIO. Для этого присвойте необходимому файлу PERLIO_DEBUG

268435456

y

Отслеживание компиляции и выполнения y///, tr///

Переменные среды#

Переменные среды приведены в таблице ниже.

Переменные среды#

Переменная

Описание

HOME

Путь к домашнему каталогу пользователя. Используется, если chdir не имеет аргументов

LOGDIR

Путь к каталогу журнала. Используется, если chdir не имеет аргументов и HOME не задана

PATH

Каталоги для поиска скриптов совместно с опцией -S

PERL5LIB

Список каталогов, в которых Perl будет искать модули перед поиском в стандартных каталогах. Если переменная PERL5LIB не определена, используется PERLLIB

PERL5OPT

Дополнительные параметры командной строки, которые автоматически применяются при запуске

PERLIO

Список слоев PerlIO, разделенный пробелом (или двоеточием)

PERLIO_DEBUG

Имя файла или устройства, куда будет записываться отладочная информация; если переменная не определена, вывод по умолчанию направляется в stderr

PERLLIB

Альтернатива PERL5LIB, используется для обратной совместимости. Если установлены обе переменные, PERL5LIB имеет приоритет

PERL5DB

Команда, выполняемая перед запуском отладчика. Может использоваться для настройки отладчика

PERL5DB_THREADED

При значении true указывает отладчику, что отлаживаемый код использует потоки

PERL_DEBUG_MSTATS

Вывод статистики использования памяти после завершения работы Perl. Выводит статистику, если для perl -V:d_mymalloc задано define

PERL_DESTRUCT_LEVEL

Управляет уровнем деструктуризации объектов

PERL_DL_NONLAZY

При значении 1 будут немедленно разрешены все неопределенные символы при загрузке библиотек, вместо отложенного разрешения, которое является поведением по умолчанию

PERL_ENCODING

Кодировка, применяемая при обработке различных литералов в исходном коде скрипта

PERL_HASH_SEED

Управление seed внутренней хеш-функции

PERL_PERTURB_KEYS

Управление уровнем случайности при обходе ключей хеша (hash keys) и подобных операций

PERL_HASH_SEED_DEBUG

Вывод информации о функции хеширования и seed, используемом для данного процесса, в шестнадцатеричном формате

PERL_MEM_LOG

Запись сообщений отладки

PERL_SIGNALS

Управление обработкой сигналов

PERL_UNICODE

Управление поведением Unicode. Аналогично опции -C

PERL_USE_UNSAFE_INC

Управление тем, включает ли массив @INC текущий каталог при поиске модулей и библиотек

PERL_INTERNAL_RAND_SEED

Инициализация генератора случайных чисел, который применяется для различных целей

Примеры использования#

  • Для запуска скрипта script.pl, содержащего код Perl, выполните команду:

    perl script.pl
    
  • Для выполнения команды в интерактивном режиме используйте команду:

    perl -e 'print "Hello, World!\n";'
    

    Вывод команды:

    Hello, World!
    

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man perl

Или:

perl -h

Или:

perldoc perlrun