Обзор и тематическое руководство по Perl
Следующий план представляет собой обзор и тематическое руководство по языку программирования Perl:
Perl — высокоуровневый , универсальный , интерпретируемый , многопарадигмальный , динамический язык программирования . Perl был первоначально разработан Ларри Уоллом в 1987 году как универсальный язык сценариев Unix для упрощения обработки отчетов. [1] С тех пор он претерпел множество изменений и доработок и стал широко популярен среди программистов. Ларри Уолл продолжает курировать разработку Raku . Обратите внимание, что Perl и Raku постоянно развиваются, поэтому Perl становится семейством языков программирования. Он расшифровывается как Practical Extraction and Reporting Language (практический язык извлечения и составления отчетов), который обрабатывает данные с использованием метода сопоставления с образцом.
Чтотипчто такое Perl?
- Perl можно описать как все следующие типы вещей:
- Семейство языков программирования – язык программирования – это искусственный язык, разработанный для передачи инструкций машине, в частности компьютеру. Языки программирования могут использоваться для создания программ, которые управляют поведением машины и/или для точного выражения алгоритмов. И Perl, и Raku считаются:
- Язык программирования общего назначения — язык программирования, предназначенный для написания программного обеспечения в самых разных областях применения.
- Язык программирования высокого уровня – язык программирования с сильной абстракцией от деталей компьютера. В то время как языки программирования низкого уровня очень скрытны, язык программирования более высокого уровня может использовать элементы естественного языка, быть более простым в использовании, делая процесс разработки программы более простым и понятным по сравнению с языком низкого уровня.
- Интерпретируемый язык – язык программирования, в котором программы «косвенно» выполняются («интерпретируются») программой-интерпретатором. Это можно сравнить с компилируемым языком, который преобразуется в машинный код, а затем «напрямую» выполняется центральным процессором.
- Язык сценариев — язык программирования, поддерживающий написание сценариев, программ, написанных для программной среды, автоматизирующей выполнение задач, которые в противном случае могли бы быть выполнены по одной оператором-человеком.
- Язык-склеиватель — язык программирования (обычно язык сценариев), используемый для написания программ или скриптов, которые активируют другие скрипты и программы (тем самым «склеивая» их вместе).
- Динамический язык программирования – язык программирования высокого уровня, который выполняет много общих поведений во время работы, которые другие языки могут выполнять во время компиляции, если вообще выполняют. Эти поведения могут включать расширение программы, путем добавления нового кода, путем расширения объектов и определений или путем изменения системы типов, все во время выполнения программы.
- Язык программирования с динамической типизацией – Язык программирования называется динамически типизированным, когда большая часть проверки его типов (например, числовых и нечисловых) выполняется во время выполнения, а не во время компиляции. Таким образом, тип для конкретной переменной или значения не заблокирован. При динамической типизации значения имеют типы, а переменные – нет; то есть переменная может ссылаться на значение любого типа.
- Бесплатное и открытое программное обеспечение — программное обеспечение, которое является как бесплатным, так и открытым исходным кодом. Оно свободно лицензировано, чтобы предоставить пользователям право использовать, копировать, изучать, изменять и улучшать его дизайн посредством доступности его исходного кода. [2] И Perl, и Raku являются бесплатными и открытыми исходными кодами.
- Свободное программное обеспечение – программное обеспечение, которое можно использовать, изучать и изменять без ограничений, и которое можно копировать и распространять в измененной или немодифицированной форме либо без ограничений, либо с ограничениями, которые только гарантируют, что дальнейшие получатели имеют те же права, на основании которых оно было получено, и что производители потребительских товаров, включающих свободное программное обеспечение, предоставляют программное обеспечение в виде исходного кода. В дополнение к этому, Perl доступен бесплатно (т. е. бесплатно).
- Программное обеспечение с открытым исходным кодом – компьютерное программное обеспечение, которое доступно в виде исходного кода: исходный код и некоторые другие права, обычно зарезервированные для владельцев авторских прав, предоставляются по лицензии с открытым исходным кодом, которая позволяет пользователям изучать, изменять, улучшать и иногда также распространять программное обеспечение. Программное обеспечение с открытым исходным кодом очень часто разрабатывается в публичной, совместной манере. Perl разрабатывается и поддерживается большим международным сообществом добровольцев.
Другие названия Perl
- Бэкронимы , описывающие Perl, но при этом рассматривающие его как аббревиатуру:
- PERL = Практический язык извлечения и составления отчетов [3]
- PERL = Патологически Эклектичный Мусорный Листер [4]
- Другие описания
- Клейкая лента для Интернета [5]
- Швейцарская армейская бензопила скриптовых языков
Аспекты Perl
Сильные стороны Perl
- Гибкость – Perl богат функциями и заимствовал их из многих других языков программирования. Это отражено в девизе « Есть больше одного способа сделать это ». Также доступно множество модулей расширения для расширения языка.
- Кроссплатформенная реализация – программы perl работают на многих типах компьютеров, обычно без необходимости изменять исходный код. Интерпретаторы Perl были разработаны для большинства операционных систем (платформ) с учетом особенностей каждой из них, поэтому все такие платформы теоретически могут запускать один и тот же код.
- Обработка текста — от проверки орфографии до операций поиска и замены с использованием регулярных выражений и обработки естественного языка.
- Манипулирование базой данных –
- Скрипты оболочки – perl хорош для написания программ в виде серии команд, которые будут запускаться оболочкой Unix, интерпретатором командной строки. Такие программы называются «скриптами». В этом отношении perl считается языком сценариев. Типичные операции, выполняемые скриптами оболочки, включают выполнение программы, печать текста и манипуляции с файлами (копирование, переименование, удаление и т. д.).
- Будучи интерпретируемым языком , Perl имеет следующие преимущества:
Слабые стороны Perl
- Медленный – будучи интерпретируемым языком, код perl обычно выполняется медленнее, чем скомпилированный код. Он не очень хорошо подходит для написания современных видеоигр, например.
- Сопровождение программного обеспечения — исходный код может быть зашифрованным (как в языке C), что затрудняет поддержку кода или исправление ошибок в коде, написанном кем-то другим, если не включены соответствующие замечания.
Компоненты Perl
Документация Perl
- Perl Programming Documentation – название руководства пользователя по языку программирования Perl 5, доступного как онлайн, так и для офлайн использования.
Структура языка Perl
Структура языка Perl
- Типы данных Perl – классификации, идентифицирующие различные типы данных, которые определяют возможные значения для каждого типа; операции, которые можно выполнять со значениями каждого типа; значение данных; и способ, которым значения каждого типа могут быть сохранены. [6] [7] Основными типами данных в Perl являются:
- Управляющие структуры Perl
- Модули Perl - модульные расширения языка Perl. Следующие модули (и группы модулей) и многое другое, включая их поддержку (руководства и т. д.), можно найти на CPAN.org, используя его поисковую строку:
Элементы скрипта Perl
#!usr/bin/perl
– называется « строка шебанга », по символу решетки (#) и ! (бах) в начале строки. Также известна как директива интерпретатора .#
– знак числа , также называемый символом решетки . В Perl # обозначает начало комментария. Он указывает Perl игнорировать остаток строки и не выполнять ее как код скрипта.- Основная структура (производная от C)
Инструменты программирования
Текстовые редакторы, поддерживающие скрипты Perl
- Notepad++ — поддерживает подсветку синтаксиса и сворачивание кода для более чем 50 языков программирования, сценариев и разметки, включая Perl.
- gedit – бесплатный текстовый редактор с открытым исходным кодом для среды рабочего стола GNOME, Mac OS X и Microsoft Windows. Разработанный как универсальный текстовый редактор, gedit подчеркивает простоту и удобство использования. Он включает в себя инструменты для редактирования исходного кода и структурированного текста, такого как языки разметки. Он имеет настраиваемую подсветку синтаксиса для различных языков, включая Perl.
- UltraEdit – коммерческий текстовый редактор для Microsoft Windows, Linux и Mac OS X (Intel), созданный в 1994 году Яном Д. Мидом. Редактор содержит инструменты для программистов, включая макросы, настраиваемую подсветку синтаксиса, сворачивание кода, преобразование типов файлов, управление проектами, совместимые с Perl регулярные выражения для поиска и замены, режим редактирования столбцов, удаленное редактирование файлов через FTP, интерфейсы для API или командных строк по выбору и многое другое.
- Vim – бесплатный и открытый текстовый редактор на основе vi, предназначенный для использования как из интерфейса командной строки, так и в качестве отдельного приложения в графическом пользовательском интерфейсе. Включает в себя скриптовый интерфейс для Perl.
- Visual Studio Code – бесплатный редактор исходного кода от Microsoft , доступный для Windows, Linux и macOS. Включает подсветку синтаксиса для Perl и возможность запускать и отлаживать код Perl непосредственно в редакторе.
Поддержка Perl
- CPAN — всеобъемлющая сеть архивов Perl, репозиторий более 250 000 программных модулей и сопроводительной документации для 39 000 дистрибутивов, написанных на языке программирования Perl более чем 12 000 участников.
Веб-сайты
Публикации о Perl
Книги о Perl
Журналы о Perl
История Perl
Версии Perl
Perl был получен из
- AWK – интерпретируемый язык программирования, предназначенный для обработки текста и обычно используемый как инструмент извлечения данных и составления отчетов. Это стандартная функция большинства Unix-подобных операционных систем. AWK назван с использованием инициалов фамилий каждого из трех его авторов.
- C – очень популярный язык программирования. Многие более поздние языки заимствовали напрямую или косвенно из C, включая C++, D, Go, Rust, Java, JavaScript, Limbo, LPC, C#, Objective-C, Perl, PHP, Python, Verilog (язык описания оборудования) и оболочку C Unix. Эти языки заимствовали многие из своих управляющих структур и других базовых функций из C. Большинство из них (причем Python является самым ярким исключением) также очень синтаксически похожи на C в целом, и они, как правило, объединяют узнаваемый синтаксис выражений и операторов C с базовыми системами типов, моделями данных и семантикой, которые могут радикально отличаться.
- grep – grep означает "Global Regular Expression Print". Это утилита командной строки для поиска в текстовых наборах данных строк, соответствующих регулярному выражению. Grep изначально был разработан для операционной системы Unix, но сегодня доступен для всех Unix-подобных систем.
- sed – (потоковый редактор) – утилита Unix, которая анализирует и преобразует текст, используя простой, компактный язык программирования. sed был одним из первых инструментов для поддержки регулярных выражений и до сих пор используется для обработки текста, особенно с помощью команды подстановки. Другие варианты для «потокового редактирования» включают AWK и Perl.
- sh – оболочка Bourne, командная строка для Unix.
программное обеспечение Perl
Коммерческое программное обеспечение, написанное на Perl
Бесплатное программное обеспечение, написанное на Perl
- Agora – был браузером электронной почты World Wide Web и был доказательством концепции, помогающей людям использовать полный интернет. Agora был веб-браузером на основе электронной почты, разработанным для неграфических терминалов и призванным помочь людям без полного доступа к интернету, например, в развивающихся странах или без постоянного подключения к интернету. Подобно W3Gate, Agora была серверным приложением, разработанным для получения HTML-документов по электронной почте, а не по http.
- Automake – программный инструмент, который создает переносимые make-файлы для использования программой make, используемой при компиляции программного обеспечения. Он создан Free Software Foundation как одна из программ GNU и является частью системы сборки GNU. Создаваемые make-файлы следуют стандартам кодирования GNU.
- AWStats – инструмент веб-аналитики с открытым исходным кодом для создания отчетов, подходящий для анализа данных из интернет-сервисов, таких как веб-сайты, потоковое мультимедиа, почтовые и FTP-серверы.
- AxKit – был XML Apache Publishing Framework, запущенный Apache Foundation, написанный на Perl. Он обеспечивал преобразование на лету из XML в любой формат, такой как HTML, WAP или текст, используя либо стандартные методы W3C, либо гибкий пользовательский код.
- BackupPC – бесплатный программный пакет для резервного копирования с диска на диск с веб-интерфейсом. Кроссплатформенный сервер будет работать на любом сервере на базе Linux, Solaris или UNIX. Клиент не нужен.
- Blosxom – бесплатная программа для веб-блога (и простая система управления контентом), написанная на Perl Раэлем Дорнфестом. Она использует уже существующую файловую систему вместо системы управления базами данных, в отличие от большинства программ для блогов.
- Bricolage – система управления контентом (CMS) корпоративного класса, по своим функциям и возможностям не уступающая высокотехнологичным и дорогостоящим фирменным продуктам.
- Bugzilla – веб-средство отслеживания ошибок и инструмент тестирования общего назначения, изначально разработанное и используемое проектом Mozilla и лицензированное в соответствии с Mozilla Public License.
- Catalyst – фреймворк веб-приложений с открытым исходным кодом. Разработчик веб-приложений будет использовать Catalyst для работы с кодом, общим для всех веб-приложений: он предоставляет интерфейсы для веб-серверов и получения запросов страниц, отправляя их в код, написанный разработчиком, для обработки и возврата запросов, а также предоставляет стандартизированный интерфейс для моделей данных, аутентификации, управления сеансами и других общих элементов веб-приложений.
- CGI:IRC – CGI-программа, написанная на Perl, которая позволяет получить доступ к IRC через веб-браузер. Она разработана гибкой и имеет множество применений, таких как IRC-шлюз для сети IRC, чат-комната для веб-сайта или для доступа к IRC, когда вы застряли за ограничивающим брандмауэром.
- ChipVault – терминальная оболочка Vi для создания и управления проектами цифровых микросхем ASIC и FPGA на основе Verilog и VHDL RTL (уровень передачи регистров). Она была создана проектировщиком ASIC в 2001 году для улучшения его ежедневного рабочего процесса.
- Dada Mail – веб-система управления электронными списками рассылки, которая может использоваться для списков объявлений. Она также может использоваться для создания и управления списками обсуждений, если вы активируете и настроите включенный плагин под названием Dada Bridge, для которого вам нужно будет установить задачу cron.
- Dancer – микрофреймворк веб-приложений с открытым исходным кодом, написанный на Perl, вдохновленный Sinatra из Ruby.
- Система отслеживания ошибок Debian – система отслеживания ошибок, используемая проектом Debian. Ее уникальной особенностью является то, что она не имеет какой-либо формы веб-интерфейса для редактирования отчетов об ошибках – все изменения вносятся по электронной почте.
- DJabberd – сервер приложений XMPP с открытым исходным кодом.
- Drakconf – позволяет легко настраивать Mandriva Linux, дистрибутив Linux.
- EPrints – пакет программного обеспечения с открытым исходным кодом для создания репозиториев открытого доступа, соответствующих протоколу Open Archives Initiative для сбора метаданных. Он обладает многими функциями, обычно встречающимися в системах управления документами, но в основном используется для институциональных репозиториев и научных журналов.
- Fink – проект по портированию и упаковке программ Unix с открытым исходным кодом для Mac OS X.
- Ganglia – масштабируемый инструмент мониторинга распределенных систем для высокопроизводительных вычислительных систем, таких как кластеры и сетки. Он позволяет пользователю удаленно просматривать статистику в реальном времени или историческую (например, среднюю загрузку ЦП или использование сети) для всех контролируемых машин.
- Git — распределенная система контроля версий и управления исходным кодом (SCM) с упором на скорость.
- GNU parallel – утилита командной строки для Linux или других Unix-подобных операционных систем, которая позволяет пользователю выполнять скрипты оболочки параллельно. Это свободное программное обеспечение, доступное на условиях GPLv3.
- GPRename – программа для переименования нескольких файлов и каталогов одновременно. Работает на любой Unix-подобной операционной системе.
- Ikiwiki – вики-приложение, которое хранит свои страницы в стандартной системе контроля версий, такой как Git или Subversion или 6+ других.
- Infobot – IRC-бот, который запоминает URL-адреса и связывает их с описательным именем.
- LiveJournal – бесплатное серверное программное обеспечение с открытым исходным кодом, которое также управляет виртуальным сообществом LiveJournal.
- LiVES – программное обеспечение для редактирования видео и инструмент VJ, выпущенное под лицензией GNU General Public License версии 3 или более поздней, доступны версии для дистрибутивов Linux, BSD, Solaris и IRIX.
- Logitech Media Server – сервер потоковой передачи аудио, поддерживающий линейку цифровых аудиоприемников Logitech Squeezebox.
- Maypole framework – веб-фреймворк для приложений, ориентированных на Model-view-controller. Он разработан для минимизации требований к кодированию для создания простых веб-интерфейсов к базам данных, оставаясь при этом достаточно гибким для поддержки корпоративных веб-приложений.
- Mojolicious – фреймворк веб-приложений реального времени, предназначенный для использования как в простых, так и в сложных веб-приложениях.
- Movable Type — система публикации веб-блогов, которая может размещать несколько веб-блогов и отдельных страниц контента, управлять файлами и ролями пользователей, шаблонами, тегами, категориями и обратными ссылками.
- Netpbm – пакет графических программ и программная библиотека с открытым исходным кодом. Работает на многих платформах Unix, Windows, Mac OS X, VMS и Amiga OS.
- OCS Inventory – инвентаризация ИТ-активов сети путем сбора информации об оборудовании и программном обеспечении сетевых машин, на которых запущена клиентская программа OCS («OCS Inventory Agent»). OCS можно использовать для визуализации инвентаризации через веб-интерфейс.
- Openkore – пользовательский клиент и продвинутый автоматизированный помощник для MMORPG Ragnarok Online. Лицензируется по GNU General Public License.
- OTRS – Система запросов на устранение неполадок с открытым исходным кодом. Бесплатный и открытый исходный код программного пакета для системы обработки заявок на устранение неполадок, который компания, организация или другой субъект может использовать для назначения заявок на входящие запросы и отслеживания дальнейшей коммуникации по ним.
- Padre – Perl Application Development and Refactoring Environment, многоязыковая платформа разработки программного обеспечения, включающая IDE и систему подключаемых модулей для ее расширения. Для разработки приложений на Perl.
- Perlbal – обратный прокси-балансировщик нагрузки и веб-сервер. Распространяется как под GNU General Public License, так и под Artistic License.
- Pisg – Perl IRC Statistics Generator, программа с открытым исходным кодом для анализа и статистической визуализации лог-файлов Internet Relay Chat (IRC), которая анализирует различные форматы лог-файлов от клиентов и ботов IRC и генерирует HTML-страницы, содержащие статистику о канале, с которого были взяты логи.
- Qpsmtpd – SMTP-демон, написанный на Perl. Первоначально он был разработан как замена qmail-smtpd, SMTP-компонента qmail, а теперь он также совместим с Postfix, Exim, sendmail и практически любым программным обеспечением, которое «разговаривает на SMTP».
- Request Tracker – система отслеживания тикетов, написанная на Perl, используемая для координации задач и управления запросами среди сообщества пользователей.
- Satellite – Redhat Satellite – это система управления системой с открытым исходным кодом, которая позволяет системным администраторам развертывать, управлять и контролировать хосты Redhat Linux и Solaris. По сути, это локальная версия Red Hat Network.
- Scoop – система управления контентом (CMS) для совместной публикации, направленная на поощрение вклада и участия пользователей. Последняя версия, выпущенная в 2007 году, была 1.1.8. Больше не разрабатывается.
- Spacewalk – программное обеспечение для управления системами с открытым исходным кодом, разработанное Red Hat. Это апстрим-версия RHN Satellite Server, который был открыт в 2008 году. Spacewalk включает в себя веб-интерфейс и бэкэнд, а также RHN Proxy Server и связанное клиентское программное обеспечение Satellite и делает их доступными для пользователей и разработчиков по лицензии свободного и открытого программного обеспечения (FOSS).
- SpamAssassin – спам-фильтр электронной почты, использующий правила сопоставления контента, выпущенный под лицензией Apache License 2.0. Теперь он является частью Apache Foundation.
- SQL-Ledger – система планирования ресурсов предприятия (ERP) и двойной записи бухгалтерского учета. Данные бухгалтерского учета хранятся на сервере базы данных SQL, а в качестве пользовательского интерфейса можно использовать стандартный веб-браузер.
- SVK – децентрализованная система контроля версий с иерархически распределенной структурой, сопоставимой с централизованным развертыванием BitKeeper и GNU arch.
- Template Toolkit – шаблонизатор, используемый в основном для создания веб-сайтов, но также подходящий для создания любого типа цифрового документа, например, файла PDF или LaTeX. Template Toolkit основан на мини-языке и не допускает прямого использования Perl в своих шаблонах.
- TWiki – структурированное вики-приложение, обычно используемое для запуска платформы совместной работы, системы управления знаниями или документами, базы знаний или командного портала. Пользователи могут создавать вики-приложения с использованием языка разметки TWiki, а разработчики могут расширять его функциональность с помощью плагинов.
- UDPCast – инструмент передачи файлов, который может отправлять данные одновременно во многие пункты назначения в локальной сети. Это может быть использовано, например, для установки целых классов ПК одновременно.
- UseModWiki – wiki-движок, лицензированный по GNU General Public License. Его страницы хранятся в обычных файлах, а не в реляционной базе данных. Его интерфейс похож на MediaWiki с классическим скином.
- W3Perl – анализатор лог-файлов, который может анализировать файлы Web/FTP/Mail/CUPS или Squid. Поддерживаются большинство основных форматов веб-лог-файлов, а также разделенные/сжатые файлы.
- WebGUI – позволяет пользователям, не разбирающимся в технике, размещать контент на страницах и в макетах, содержащих «Активы» (апплеты), которые позволяют посетителям веб-сайта просматривать и взаимодействовать с различными типами данных от базовых статей до полнофункциональной системы управления контентом и пользовательских приложений. Выпущено под лицензией GNU General Public License.
- Website Meta Language – расширяемый набор инструментов для офлайн-генерации HTML для Unix, распространяемый под лицензией GNU General Public License (GPL v2). Он написан на ANSI C и Perl 5, построен с помощью исходного дерева на основе GNU Autoconf и работает «из коробки» на всех основных производных Unix.
- XCAT – Extreme Cloud Administration Toolkit, программное обеспечение с открытым исходным кодом для управления распределенными вычислениями, разработанное IBM, используемое для развертывания и администрирования кластеров на базе Linux или AIX.
- Xuheki – веб-протокол доступа к сообщениям в Интернете, созданный на основе технологии Ajax и поддерживающий веб-сервер Apache.
Культура Perl
Perl-организации
Перл личности
Авторы Perl
Раку
- Раку
- Правила Raku – основная часть языка, которая расширяет определение «регулярных выражений» с помощью конструкций синтаксического анализа и сопоставления с образцом, которые превосходят возможности формальных регулярных выражений.
Реализации Raku
Смотрите также
Ссылки
- ^ Шеппард, Дуг (16 октября 2000 г.). "Введение в Perl для начинающих". dev.perl.org . Получено 08 января 2011 г.
- ^ Free Software Foundation. "Что такое свободное программное обеспечение?" . Получено 14 декабря 2011 г.
- ^ Ричардсон, Марджори (1999-05-01). "Ларри Уолл, гуру Perl". Linux Journal . Получено 03.01.2011 .
- ^ Уолл, Ларри . "perl - Интерпретатор языка Perl". Документация Perl 5 версии 12.2 . Получено 26.01.2011 .
- ^ [1] Тим О'Рейли цитирует Хассана Шредера, первого веб-мастера Sun]
- ^ наберите в бесплатном онлайн-словаре по вычислительной технике
- ^ Шаффер, CA Структуры данных и алгоритмы , 1.2
- ^ Кастро, Элизабет (2001). Perl и CGI для Всемирной паутины. Peachpit Press . стр. 314. ISBN 978-0-201-73568-0. Получено 23 июня 2011 г. .
Внешние ссылки
- Официальный сайт Perl.org
- Поддержка сообщества
- PerlMonks – сообщество, стремящееся делиться знаниями Perl и советами по программированию
- Бесплатные руководства по Perl
- Perl в 10 простых уроках на форумах Linux
- Учебник Perl Maven – для начинающих и продвинутых
- Изучите Perl примерно за 2 часа 30 минут – вводный урок
- Вводный курс обучения Perl для Windows — включает инструкции по CGI.
- Essential Perl – из Библиотеки компьютерных наук Стэнфордского университета
- Бесплатные онлайн-книги о Perl
- Практическое программирование на Perl – книга А.Д. Маршалла, Кардиффский университет
- Современный Perl – бесплатная онлайн-книга от Chromatic
- Picking up Perl – бесплатная онлайн-книга Брэдли М. Куна и Нила Смита
- Нетерпеливый Perl – для читателей с опытом программирования. Изучите Perl примерно за неделю.
- Трудный путь изучения Perl — для людей, знающих другой язык программирования.
- Higher-Order Perl – продвинутое программирование на Perl
- Разговорник Perl – сравните эквивалентные примеры кода Perl и Python на Python Wiki
- Скрипты Perl
- Репозиторий скриптов Perl на roth.net