Perl (Русский)
From Wikipedia:
- Perl это высокоуровневый динамический язык общего применения с интерпретацией.
- Perl заимствует функции из других языков программирования включая C, sh, AWK, и sed. Он предоставляет конвейеры обработки текста без ограничений по длине данных, присущих основным утилитам UNIX.
- Perl завоевал широкую популярность в середине 90х как CGI скриптовый язык, отчасти из-за его мощных постоянных выражений и способностей парсинга строк.
Установка
Установите пакет perl.
Команды
Интерпретатор языка Perl:
$ perl
Сообщение о багах Perl:
$ perlbug
Открыть документацию Perl в формате POD:
$ perldoc
Отправить благодарственное письмо разработчикм и авторам Perl:
$ perlthanks
Управление пакетами
Comprehensive Perl Archive Network (CPAN) это репозиторий с более чем 250,000 програмными модулями и сопутствующей документацией написанными на языке Perl более чем 12,000 авторами.
Также CPAN это имя Perl модуля, CPAN.pm, который используется для загрузки и установки Perl программ из CPAN архива.
Pacman и AUR
Некоторое число популярных CPAN модулей доступны как пакеты в репозитории Arch. Ещё больше модулей доступны в AUR.
CPAN.pm
Модуль CPAN.pm включён в Perl. Он может быть использован интерактивно из терминала или в скрипте Perl.
Конфигурация cpan
Перед первым использованием, модуль должен быть сконфигурирован. Это делается интерактивно из терминала с (приведено немного вывода):
$ cpan
CPAN.pm requires configuration, but most of it can be done automatically. If you answer 'no' below, you will enter an interactive dialog for each configuration option instead. Would you like to configure as much as possible automatically? [yes]
Автоматическая конфигурация подходит для большинства пользователей. Ответив yes, конфигурация продолжится с:
To install modules, you need to configure a local Perl library directory or escalate your privileges. CPAN can help you by bootstrapping the local::lib module or by configuring itself to use 'sudo' (if available). You may also resolve this problem manually if you need to customize your setup. What approach do you want? (Choose 'local::lib', 'sudo' or 'manual') [local::lib]
Если вы хотите чтобы cpan устанавливал модули в вашу домашнюю директорию выберите local::lib. Для установки по всей системе выберите sudo. Выбрав sudo конфигурация завершается:
Autoconfiguration complete. commit: wrote '/home/пользователь/.cpan/CPAN/MyConfig.pm'
Выбор варианта local::lib приведёт к установке дополнительных модулей.
Выбор не использовать автоматическую конфигурацию позволяет пользователю установить опции cpan интерактивно в терминале. Таблица ниже показывает некоторые имена опций с кратким описанием и значением по-умолчанию. Более детальная информация будет показана для каждой опции во время конфигурирования.
| Name | Description | Default |
|---|---|---|
| cpan_home | CPAN директория сборки и кэширования | $HOME/.cpan |
| keep_source_where | Загрузочная директория | $HOME/.cpan/sources |
| build_dir | Директория процесса сборки | $HOME/.cpan/build |
| prefs_dir | Директория с опциями кастомизируемых модулей | $HOME/.cpan/prefs |
| build_cache | Размер кэша для директории сборки | 100MB |
| cleanup_after_install | Удалить директорию сборки после успешной установки | No |
| shell | Предпочитаемая оболочка | /bin/bash |
| halt_on_failure | Ждать при неудаче | No |
| colorize_output | Включить цветной вывод | No |
| histfile | Расположение файла истории | $HOME/.cpan/histfile |
| histsize | Размер файла истории | 100 lines |
Кофигурационный файл $HOME/.cpan/CPAN/MyConfig.pm может быть отредактирован текстовым редактором по вашему выбору.
Примеры использования
Чтобы просто установить модули пропишите их как параметры к cpan (несколько имён модулей разделены пробелами):
$ cpan Acme::MetaSyntactic
Приведённые примеры исполняются в интерактивной оболочке cpan, открывающейся по команде:
$ cpan
Отобразить информацию о модуле:
cpan[1]> m Acme::MetaSyntactic
Reading '/home/пользователь/.cpan/Metadata'
Database was generated on Fri, 08 Dec 2017 02:17:03 GMT
Module id = Acme::MetaSyntactic
CPAN_USERID BOOK (Philippe Bruhat (BooK) <book@cpan.org>)
CPAN_VERSION 1.014
CPAN_FILE B/BO/BOOK/Acme-MetaSyntactic-1.014.tar.gz
INST_FILE (not installed)
Отобразить README модуля:
cpan[2]> readme Acme::MetaSyntactic
Acme::MetaSyntactic - Themed metasyntactic variables DESCRIPTION When writing code examples, it's always easy at the beginning: my $foo = "bar"; $foo .= "baz"; # barbaz ...
Установите модуль:
cpan[3]> install Acme::MetaSyntactic
Перезапустите конфигурацию cpan:
cpan[1]> o conf init
Привязка виджетов
Доступны указанные инструменты виджетов для привязки:
- gtk2-perl — GTK2 привязки
- perl-gtk3 — GTK3 привязки
- Perl/TK — Tk привязки
- wxPerl — wxWidgets привязки
- http://www.wxperl.it/ || perl-wxAUR
- Prima — Мультиплатформенный графический набор инструментов Perl
Чтобы использовать их с Perl, вам нужно установить соответствующие наборы виджетов.
Поддержка IDE
Разработка в Jetbrains IDE
Если вы используете JetBrains IDE, к примеру IntelliJ Idea, установите perl-bundle-camelcadeAUR. Затем установите Perl плагин. Затем перейдите в Параметры > Языки и Фреймворки > Perl5. В поле Perl 5 Interpreter выберите Добавить Системный Perl. Теперь вы можете запускать/отлаживать конфигурацию для вашего проекта.
Советы и хитрости
Perl среда разработки
perlbrew и plenvAUR автоматизируют установку и управление несколькими версиями perl в вашей домашней директории, позволяя вам устанавливать модули локально без конфликтов с системным Perl.
Улучшенное управление модулями
cpanminus
cpanminus расширяет управление модулями, стремясь быть без конфигурации и интегрироваться с local::lib.
Установите пакет cpanminus.
Смотрите cpanminus документацию для примеров.
ucpan
ucpan это программа для обновления модулей CPAN (в особенности установленных в local-lib). Для установки,выполните:
$ cpan App::ucpan
Bundle::CPAN
Установка Bundle::CPAN добавит множество приятного функционала CPAN.pm.
$ cpan Bundle::CPAN
Смотрите также
Perl
CPAN
- Comprehensive Perl Archive Network
- wikipedia:CPAN
- CPAN / CPAN Shell / CPANPLUS Quick Reference Guide
- List of recommended Perl modules