Язык программирования perl примеры
Perl — особенный язык программирования
Есть такой язык программирования — Perl. Если вы заинтересовались информационными технологиями в эпоху Python и JavaScript, вы, вероятно, даже не знаете, что он существует — а он есть и его много. Если представить, что наши ИТ-проекты — это красивые квартиры с евроремонтом, то Perl можно представить как старые магистральные трубы, по которым вода приходит в квартиру.
Ещё Perl называют «скотчем для интернета», потому что он может соединять какие угодно проекты, написанные на любых языках:
Perl хорошо умеет запускать системные команды в операционной системе. Благодаря этому Perl может взять результат работы одной программы, преобразовать их как нужно и отдать в другую.
✅ Суперсила Perl — в работе с регулярными выражениями, полная поддержка которых уже встроена в язык. Perl может взять любые данные, обработать их по нужным правилам и очень быстро выдать результат в удобном для пользователя виде.
❌ Слабое место Perl — его сложность для новичков, если выбрать его своим первым языком для изучения. В нём всё не так просто с ООП, слишком вольная трактовка операторов сравнения и огромные комбинации спецсимволов, в которых сложно разобраться на старте. Поэтому Perl лучше не выбирать как первый язык, а вернуться к нему, когда возникнет практическая необходимость.
Если у вас MacOS или Linux — у вас уже есть Perl
Интерпретатор Perl встроен почти во все UNIX-подобные операционные системы, поэтому его можно использовать в любой момент без установки. Единственное, что нужно проверить — что в системных настройках правильно указан путь к интерпретатору.
Если у вас Windows, то всё сложнее — нужно будет использовать отдельный интерпретатор, написанный специально для вашей версии Windows. Дополнительный минус — так как это не родная среда для Perl, часть команд в таком режиме совместимости работать не будет.
Синтаксис
Синтаксис Perl похож одновременно на два языка:
Переменные. Начинаются со специальных символов:
$ — число, строка или ссылка на что-то
$thecode = «Привет, это журнал Код!»
& — функция (в Perl это тоже переменная), которая получает аргументы и возвращает значение
Условный оператор. Почти такой же как в C:
Ещё есть unless — то же самое, что ЕСЛИ, только наоборот:
# «выполняется, только если a не равно нулю»
Циклы. То же самое, как и везде:
# вывести строку ‘0 1 2 3 4’
Или можно сделать как в PHP:
# вывести строку ‘0 1 2 3 4’
Циклы с пред- и постусловием. Если вы знаете хотя бы Pascal, то вы знаете и циклы на Perl:
Операторы присваивания и математические операторы. В этом плане Perl очень похож на любой C-подобный язык и использует те же самые команды:
Применение на практике
Perl — мощный язык для работы с текстом и любыми символьными данными. На нём легко писать программы, которые автоматизируют работу с компьютером, выполняют рутинные операции или преобразуют одни данные в другие.
Например, эта команда
заменит все упоминания слова Java на слово Perl в файле resume.txt, и одновременно сделает резервную копию оригинального файла.
А эта — удаляет все повторяющиеся элементы массива:
my %cnt; # здесь будет число повторений элементов
Если нужно очистить файл от всех HTML-команд, можно использовать такой код:
# исходим из того, что мы уже получили содержимое HTML-файла и можем с ним работать
Иногда это всё-таки сложно
Иногда готовый код на Perl сложно понять и прочитать. Это из-за того, что Perl — очень гибкий язык программирования с полной поддержкой регулярных выражений. Чтобы понять, что делают некоторые программы и функции, недостаточно просто посмотреть на них — нужно понимать правила преобразования регулярных выражений и знать, как одни команды в регулярках влияют на другие.
Самый популярный пример такого кода:
❌❌❌ Не запускайте этот код на своём компьютере, мы предупредили.
Кажется, что на экране должно появиться несколько раз слово test, а дальше perl обрабатывает набор каких-то бессмысленных символов. Но на самом деле после выполнения и обработки всех регулярных выражений этот код превращается в такой:
❌❌❌ И этот код тоже не запускайте — можно легко стереть все свои данные и повредить файловую систему.
Не все программы на Perl выглядят как эта, но без понимания того, как работают регулярные выражения, понять код бывает очень сложно.
Вывод: регулярные выражения — это сила. Убедились в этом в очередной раз. Если ещё не убедились — почитайте, как с их помощью можно настроить автозамену нецензурной лексики на благопристойные выражения.
Что пишут на Perl
Если коротко: всё, где нужно автоматизировать работу компьютера или преобразование данных, можно написать на Perl.
Системное программирование. Сюда можно отнести работу с учётными записями пользователей в сетях любой сложности и конфигурации, администрирование сетей и пользователей в организации. Ещё Perl используют для автоматизации рутины — наладить резервное копирование по расписанию, отправку писем с ежедневными отчётами, сбор, обработку и анализ разных данных.
CGI-скрипты — любые скрипты для обмена данными между сервером и клиентом. Для Perl неважно, в каком виде данные выходят и поступают обратно, — он переведёт их в нужный вид и отправит из одного сервиса в другой.
Объединение сервисов или программ. Если у вас есть две программы, одна из которых выдаёт готовый результат в одном формате, а другой он требуется в другом формате, то Perl поможет вам их соединить. Работает это так: вы пишете скрипт, который запускает первую программу, получает оттуда данные, преобразует их в нужный вид и отправляет во вторую программу. В итоге всё это работает как одно целое.
Востребован ли Perl сейчас
Perl востребован, потому что в мире накопилось много старого кода, который нужно поддерживать. Дело в том, что программы на Perl работают стабильно, предсказуемо и без сбоёв, а с 1987 года их написано очень много.
Но порог входа в этот язык довольно высок — нужно обладать навыками хотя бы на уровне мидла, чтобы быть востребованным специалистом.
С чего начать
Почитать: учебник по Perl для новичков. Перевод иногда хромает, но это лучший вариант для тех, кто только начинает изучение языка.
Посмотреть: Perl Tutorial или Great Perl Tutorial For Begginers. Тут уже всё на английском, зато более наглядно.
Бумажная книга: Изучаем Perl Рэндала Шварца и Тома Феникса. Для тех, кто любит основательно подойти к процессу и не любит читать с экрана.
Быстрый старт в Perl
Этот язык программирования богат возможностями по работе с текстом, что определяет основную область его применения — манипуляции с текстом, в частности парсинг.
В этой статье будут описаны шаги по установке среды исполнения Perl, выбору средств разработки и созданию первой программы. В конце этого руководства вы найдете список источников, которые помогут быстро освоить основы Perl, а также изучить язык более углубленно.
Perl — это единственный язык, программы на котором выглядят одинаково до и после RSA-шифрования.
На момент написания этого материала актуальной версией интерпретатора является 5.22.0. Perl 6 готовится к релизу в 2015 году, но еще недостаточно документирован.
Язык программирования Perl крайне не рекомендуется брать в качестве языка для знакомства с программированием. Если вы абсолютный новичок — лучше начните с чего-нибудь менее губительного для вашего неокрепшего сознания. Серьезно, вот что говорил об этом языке Йон Риббенс:
PHP — это маленькое зло, созданное некомпетентными новичками, в то время как Perl — это большое и коварное зло, созданное умелыми, но извращёнными профессионалами.
К слову сказать, с PHP начинать тоже не стоит. А теперь ближе к делу.
Среда исполнения
Интегрированная среда разработки (IDE)
Perl, к сожалению, не очень популярен среди разработчиков сред разработки, поэтому на выбор вам предоставлено лишь небольшое количество специализированных инструментов.
Padre, the Perl IDE
Мультиплатформенная легковесная среда разработки, созданная специально для Perl и удобная для новичков. Помимо традиционных подсветки синтаксиса и автодополнения, имеет также встроенные инструменты рефакторинга. Кстати, Padre сама написана на Perl 5.
Среда разработки, основанная на Eclipse. Подойдет для тех, кто собирается углубиться в Perl. Также поддерживается всеми основными платформами, однако обладает большим функционалом: в частности, поддерживает инспекцию переменных, навигацию по краткой документации и средства отладки (для последнего необходимо скачивать дополнительный модуль).
Инструкция по установке на официальном сайте. Перед установкой вам необходимо иметь на компьютере Eclipse (версии, не ниже 3.6), среду исполнения Java (JRE) и интерпретатор Perl (инструкции по его установке даны выше).
Об установке дополнительных плагинов для EPIC можно почитать здесь.
Текстовые редакторы
Как и в случае с любым языком программирования, конечно же, вам предоставляется огромное множество мультиплатформенных текстовых редакторов на выбор: от предустановленных блокнотов до более удобных средств редактирования исходного кода с подсветкой синтаксиса, автодополнением и т.п. В частности, обратите внимание на:
CodeGround
Кроме того, если вы хотите только попробовать программирование на Perl и не хотите устанавливать дополнительное программное обеспечение на свой компьютер, вы можете воспользоваться сервисом CodeGround, предоставляющим доступ к онлайн-средам разработки с базовым функционалом для большинства языков программирования, в число которых входит и Perl.
Первый «Привет, мир!» на Perl
Традиционно предлагаем начать знакомство с новым языком со всем хорошо известной программы:
Сохраните эту строку в файле hello.pl и запустите только что созданную вами программу командой:
Поздравляем, вы начали писать на Perl!
А дальше — в путь…
Отличное англоязычное руководство по языку программирования Perl для быстрого старта вы можете найти на сайте tutorialspoint.com. Помимо этого, существует официальный обучающий ресурс — learn.perl.org.
Среди русскоязычных руководств отметим перевод мультиязычного Учебника Perl. В нем переведены не все главы, однако в качестве основы ресурс вполне пригоден.
Если же вам не по душе изучение посредством чтения, вы можете посмотреть видео-уроки на YouTube в составе следующих плейлистов:
Если вам удастся найти хорошие видео-уроки по Perl на русском языке, обязательно напишите нам об этом в комментарии к этой статье или на почту chief@tproger.ru.
Естественно, вам не обойтись без официальной документации. Скачать оффлайн-версию в HTML и PDF формате можно на этой странице.
Среди книг для начала и продолжения обучения отметим:
Список рекомендуемых к прочтению книг вы можете найти также здесь.
Спасибо за внимание и успехов в изучении Perl!
Функциональное программирование на Perl в примерах
В данной статье будет рассмотрено функциональное программирование на примере скрипта поиска битых ссылок с использованием AnyEvent::HTTP. Будут рассмотрены следующие темы:
Анонимные подпрограммы
Анонимная подпрограмма объявляется также, как и обычная, но между ключевым словом sub и открывающей скобкой блока программного кода нет имени. Кроме того, такая форма записи расценивается как часть выражения, поэтому объявление анонимной подпрограммы должно завершаться точкой с запятой или иным разделителем выражения, как и в большинстве случаев:
Например, реализуем подпрограмму, утраивающую переданное ей значение:
Основное преимущество анонимных подпрограмм — использование «кода как данных». Другими словами, мы сохраняем код в переменную (например, передаем в функцию в случае колбеков) для дальнейшего исполнения.
Пример использования рекурсии в сочетании с колбеками будет показан ниже при рассмотрении задачи поиска битых ссылок.
Замыкания (Closures)
Как сказано в википедии
Замыкание — это функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся ее параметрами.
По сути, замыкание — это аналог класса в ООП: предоставляет функциональность и данные связанные и упакованные вместе. Рассмотрим пример замыкания в Perl и класса в C++:
Проведем анализ приведенного кода:
объявление приватной переменной:
объявляем переменную multiplier типа int после маркера доступа private ;
инициализирование приватной переменной:
при создании переменной инициализируем переданным значением;
перегружаем конструктор, чтобы он принимал число и в списке инициализации инициализируем переменную multiplier ;
создание подпрограммы, перемножающей переданное ей значение с ранее инициализированной переменной:
Для использования замыкания в Perl и класса в C++, их нужно определить, т.е. создать объект:
Аналогом функции-замыкания из примера на Perl, в C++ является использование лямбд, как показано в коде. В примере на Perl функция-замыкание, передаваемая в функцию, также называется колбеком, или функцией обратного вызова.
Функции обратного вызова (Callback)
По сути, функция обратного вызова является аналогом полиморфизма функций, а именно, позволяет создавать функции более общего назначения вместо того, чтобы создавать серию функций, одинаковых по структуре, но отличающихся лишь в отдельных местах исполняемыми подзадачами. Рассмотрим пример задачи чтения из файла и записи в файл. Для этого с помощью Perl создадим две функции reader и writer (за основу был взят пример с презентации Михаила Озерова Ленивые итераторы для разбора разнородных данных), а с помощью C++ мы создадим классы Reader_base, Writer_base, ReaderWriter.
Компилировать следующим образом:
Проведем анализ кода:
работа с созданными функциями в Perl и классами в C++:
Далее рассмотрим комплексную практическую задачу поиска битых ссылок с помощью AnyEvent::HTTP, в котором будут использоваться вышеописанные темы — анонимные подпрограммы, замыкания и функции обратного вызова.
Задача поиска битых ссылок
Для того, чтобы решить задачу поиска битых ссылок (ссылок с кодами ответа 4xx и 5xx), необходимо понять, как реализовать обход сайта. По сути, сайт представляет из себя граф ссылок, т.е. урлы могут ссылаться как на внешние страницы, так и на внутренние. Для обхода сайта будем использовать следующий алгоритм:
Затем создаем функцию scan_website, в которую передаем ограничение на максимальное количество урлов на скачивание и колбек.
Далее создаем анонимную функцию и выполняем её. Запись вида
или удаления циклической ссылки:
Структура хэша %urls следующая:
В функции process_page мы сохраняем полученный хэш и колбек.
После чего мы в цикле проходимся по хэшу урлов, получая пару (parent_url => current_urls) и далее проходимся по списку текущих урлов (current_urls)
Прежде, чем приступить к рассмотрению получения данных со страниц сделаем небольшое отступление. Базовый алгоритм парсинга страницы и получения с нее урлов предпоолагает один HTTP-метод GET, вне зависимости, внутренний этот урл или внешний. В данной реализации было использовано два вызова HEAD и GET для уменьшения нагрузки на сервера следующим образом:
Итак, сначала мы выполняем функцию http_head модуля AnyEvent::HTTP, передавая ему текущий урл, параметры запроса и колбек.
В колбеке мы получаем заголовки (HTTP headers)
из которых получаем реальный урл (урл после редиректов)
Далее, если произошла ошибка (коды статуса 4xx и 5xx), то выводим ошибку в лог и сохраняем заголовок в хэш для дальнейшего использования
Иначе, если сайт внутренний и это веб-страница,
В колбеке функции http_get получаем заголовки и тело страницы, декодируем страницу.
С помощью модуля Web::Query выполняем парсинг страницы и получение урлов.
На каждой итерации метода each мы получаем в колбеке ссылку
и преобразовываем ее
Далее мы проверяем — если в графе нет такой ссылки
то получаем корневой домен ссылки (либо ставим его в ‘fails’)
т.е. в данном случае, и родительской, и текущей страницей была стартовая страница (в остальных случаях данные страницы различаются).
Конструирование данной структуры происходит следующим образом — если сайт внутренний, то мы создаем структуру
иначе, если сайт внутренний, то структуру
Если мы не попали ни в один из вариантов (ошибка или парсинг внутренней страницы), т.е. сайт внешний и без ошибок, то выполняем колбек
Иначе, если есть урлы для проверки,
то рекурсивно вызываем анонимную подпрограмму
В качестве бонуса, в скрипте реализован вывод графа с помощью GraphViz в разные форматы — svg, png и т.д. Примеры запуска скрипта:
Также имется возможность управлять выводом логов с помощью переменной окружения PERL_ANYEVENT_VERBOSE, а именно
Заключение
В данной статье было рассмотрено функциональное программирование на Perl, в частности, были рассмотрены такие темы — анонимные подпрограммы, замыкания и функции обратного вызова. Было проведено сравнение замыканий в Perl и классов в C++, функций обратного вызова (callbacks) в Perl и перегрузку функций-членов в C++. Также был расмотрен практический пример поиска битых ссылок с использованием AnyEvent::HTTP, в котором были использованы все вышеописанные возможности функционального программирования.
Учебник Perl
Что такое Perl?
Perl заменяет « Практический язык извлечения и отчетности », хотя для Perl нет авторизованной аббревиатуры. Вы можете создать свою собственную аббревиатуру, и никто не будет возражать. Perl был создан Ларри Уоллом в 1987 году, когда он работал в системе сообщений об ошибках и «AWK» — язык программирования, который он использовал для этой цели, мало ему помогал. Он по-прежнему главный архитектор и разработчик Perl. Если мы хотим определить Perl в одном предложении: Perl — это высокоуровневый интерпретируемый динамический язык программирования. Вам все это казалось по-гречески? (Если вы на самом деле не знаете греческий).
Perl — это язык программирования, специально разработанный для редактирования текста. В настоящее время он широко используется для различных целей, включая системное администрирование Linux, сетевое программирование, веб-разработку и т. Д.
Где используется Perl?
Мощь Perl может быть реализована во многих областях. Наиболее популярное использование Perl в веб-разработке. Perl также используется для автоматизации многих задач на веб-серверах и других задач администрирования, он может автоматически генерировать электронную почту и очищать системы. Perl по-прежнему используется для своей первоначальной цели — извлечения данных и генерации отчетов. Он может создавать отчеты об использовании ресурсов и проверять наличие проблем безопасности в сети. По этой причине Perl стал популярным языком, используемым в веб-разработке, сетях и биоинформатике. Помимо всего этого Perl также может быть использован для программирования CGI.
Perl также может быть использован для создания и управления изображениями. Помимо этой сети через telnet, FTP и т. Д., Создание графического пользовательского интерфейса, электроники VLSI и создание почтовых фильтров для уменьшения практики рассылки спама — это некоторые примеры использования Perl
Perl также известен реализацией практик ООП (объектно-ориентированного программирования) и поддерживает все формы наследования (простое, множественное и алмазное), полиморфизм и инкапсуляцию. Perl достаточно гибок для одновременной поддержки процедурных и ООП-практик. Perl также имеет дополнительные модули, которые позволяют вам писать или использовать / повторно использовать код, написанный на Python, PHP, PDL, TCL, Octave, Java, C, C ++, Basic, Ruby и Lua, в вашем скрипте Perl. Это означает, что вы можете комбинировать Perl с этими дополнительными языками программирования, а не переписывать существующий код.
Зачем использовать Perl?
Пример: Perl Hello World
Приведенные выше две строки кода выведут Hello, world! Разве это не было слишком просто и быстро? Студенты со знанием C, C ++ будут знать, что для получения одинакового вывода на этих языках требуется гораздо больше строк кода.
Одним из лучших преимуществ Perl является то, что он бесплатен
Сообщество Perl твердо убеждено, что программное обеспечение должно быть свободно доступным, свободно модифицируемым и свободно распространяемым. Несколько волонтеров из сообщества Perl стремятся сделать язык программирования как можно лучше.
Плюсы: | Минусы: | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Юникс | Уже установлено Поставляется с предварительно установленным Perl, хотя вам может потребоваться обновить его до последней версии. | ||||||||||||||||||||||||||||||||||||||||||||||
Mac OS | Уже установленный OSX поставляется с предустановленным Perl, хотя вам может потребоваться обновить его до последней версии | ||||||||||||||||||||||||||||||||||||||||||||||
Windows | Необходимо установить два варианта доступныОбновление Perl в Linux:Если вам нужно обновить версию Perl, просто введите одну строку команды sudo apt-get установить Perl И расслабься. Об остальном позаботятся. Просто убедитесь, что у вас есть активное подключение к Интернету. Установите Perl для Windows:Шаг 1: Как только вы загрузите установщик и начнете установку, вы увидите окно ниже, нажмите «Далее» для продолжения. Шаг 2: Примите лицензионное соглашение для продолжения установки. Шаг 3: Ниже приведены различные пакеты, которые будут установлены. По умолчанию все будет выбрано. Единственное, что отличается — это PPM (Perl Package Manager). Это утилита, предоставляемая Active Perl для установки внешних модулей или библиотек Perl в вашей системе. Нажмите Далее, чтобы продолжить. Шаг 5: Нажмите кнопку «Установить», чтобы продолжить установку. Шаг 6: После установки выполните команду ‘Perl –v’, чтобы проверить, успешно ли установлен Perl в вашей системе. Существует множество вещей, которые необходимо обсудить для настройки среды Perl как в Linux, так и в Windows, так как в этой установке не будет много библиотечных файлов. Вам нужно установить их вручную. Вы можете установить их вручную, используя CPAN (Comprehensive Perl Archive Network) или PPM, который работает только для Perl Windows. Но эти файлы не являются обязательными для начала кодирования в Perl. Помимо этой настройки Windows, вы можете использовать новую функцию Windows 10 в подсистеме Linux поверх Windows и использовать ее для запуска Perl-кода. Пример Perl: Hello WorldНе волнуйтесь, если вы не понимаете этот текст. Все будет ясно в ближайшее время. Давай и посмотри на это по линии: Инструкция печати записывает текст на экран. Точка с запятой в конце строки сообщает интерпретатору Perl, что инструкция завершена. Вы должны поставить точку с запятой в конце каждой инструкции в коде Perl. Обратите внимание на кавычку («). Это необходимо для инструкции печати. Сохраните приведенный выше скрипт как firstprog.pl На виндеЕсли у вас установлена Strawberry, вы можете просто нажать Run. Вы также можете запустить интерфейс командной строки и написать на консоли: или, если perl.exe не в вашем пути: В Linux / UnixВам просто нужно открыть терминал и написать: Если вы не можете запустить программу, убедитесь, что у вас есть право на ее запуск. Введите в Терминале: Ваша программа теперь исполняемая и готова к запуску. Чтобы выполнить, напишите: Установите модули cpan минусcpan App :: cpanminus Убедитесь, что у вас есть интернет-соединение во время загрузки и установки модулей perl. Теперь установите любой модуль: Давайте рассмотрим пример установки модуля File :: Data (это интерфейс для доступа к данным файла). Переменная PerlТеперь поговорим о переменных. Вы можете представить переменную как контейнер, который содержит одно или несколько значений. После определения имя переменной остается прежним, но значение или значения меняются снова и снова. Существует 3 типа переменных:Самые простые — это скаляры, и это наша тема сегодня Скалярная переменнаяЭтот тип переменной содержит одно значение. Его имя начинается со знака доллара и идентификатора Perl (это имя нашей переменной). Соглашение об именованииЕсли вы знакомы с другими языками программирования, вы должны знать, что существуют определенные правила именования переменных. Аналогично, в Perl есть три правила именования скаляров. Пример Perl: Это, однако, не являются допустимыми именами скалярных переменных. Общее правило гласит: когда в Perl есть что-то одно, это скаляр. Скаляры можно читать с устройств, и мы можем использовать их в наших программах. Два типа скалярных типов данныхЧисла:В этом типе скалярных данных мы можем указать: Примечание: в общем, интерпретатор Perl видит целые числа как числа с плавающей запятой. Например, если вы напишите 2 в своих программах, Perl увидит это как 2.0000 Целочисленные литералы:Он состоит из одной или нескольких цифр, которым может предшествовать плюс или минус, и которые должны быть подчеркнуты. Примеры Perl: Как видите, ничего особенного. Но, поверьте мне, это самый распространенный тип скаляров. Они повсюду. Литералы с плавающей точкой:Он состоит из цифр, опционально минус, десятичной точки и экспоненты. Примеры Perl: Восьмеричное, шестнадцатеричное и двоичное представление:Это альтернатива десятичной системе. Позвольте мне показать вам восьмеричное, шестнадцатеричное и двоичное представление. Короткая таблица представляет всю важную информацию об этих странных стилях:
Примеры Perl: Все эти значения для Perl означают одно и то же. Perl не хранит значения в том же формате. Он внутренне преобразует эти шестнадцатеричные, двоичные, восьмеричные в десятичные значения. Назначение является самой распространенной операцией в скаляре, и это очень просто. Perl использует для этого знака равенства. Он берет значение выражения с правой стороны и помещает это значение в нашу переменную. Давайте посмотрим на примеры: Более того, вы можете поместить в переменную не только число, но и выражение. СтруныСтроки: Это также очень простой тип скаляров. Максимальная длина строки в Perl зависит от объема памяти компьютера. Нет ограничений на размер строки, любое количество символов, символов или слов может составлять ваши строки. Самая короткая строка не имеет символов. Самый длинный может заполнить всю системную память. Программы на Perl могут быть написаны полностью в 7-битном наборе символов ASCII. Perl также позволяет вам добавлять любой 8-битный или 16-битный набор символов, иначе. не-ASCII символы в строковых литералах. Perl также добавил поддержку Unicode UTF-8. Как и числа, есть два разных типа строк: Строковые литералы в одинарных кавычкахОдиночные кавычки используются для включения данных, которые вы хотите воспринимать буквально. Короткий пример и все должно быть понятно: Примеры Perl: Строковые литералы в двойных кавычкахДвойные кавычки используются для включения данных, которые необходимо интерполировать перед обработкой. Это означает, что экранированные символы и переменные не просто буквально вставляются в более поздние операции, а оцениваются на месте. Экранирующие символы можно использовать для вставки новых строк, вкладок и т. Д. Примеры Perl: Двойные кавычки интерполируют скалярные и массивные переменные, но не хэши. С другой стороны, вы можете использовать двойные кавычки для интерполяции фрагментов как массивов, так и хэшей. Таинственный \ n Рассмотрим следующую программу Примеры Perl: Perl отображает не просто «привет \ n», а только «привет». Почему? Потому что ‘\ n’ является специальным знаком и означает, что вы хотите перейти на новую строку при отображении текста в вашей программе. напечатайте «привет \ n новая строка»; Следующий вопрос — есть ли другие особые признаки? Да! Но не волнуйся — только немногие. Проверьте таблицу ниже
Я знаю, что «не мало»… Но поверьте, вы должны знать только Строка ПеременнаяЭто та же самая операция, которую мы видим при назначении номеров. Perl получает нашу строку справа от знака равенства и помещает эту строку в переменную. Примеры Perl: Как видите, вы можете поместить числа и строки в одни и те же переменные. Там нет класса переменных. Конкатенация строк (период):Оператор конкатенации «.» объединяет две или более строки Помните! Если строка содержит кавычки, возврат каретки, обратную косую черту, все эти специальные символы необходимо экранировать обратной косой чертой. Perl » переменная Примеры: Том любимый кот мамы «$ a», «$ b» объединяются и сохраняются в «$ c» с использованием «.» оператор. Преобразование между числами и строками:Примеры Perl: Область действия переменной — Access Modifiers Мы можем объявить скаляр в любом месте программы. Но вам нужно указать модификатор доступа Есть 3 типа модификаторовMy: Используя это, вы можете объявить любую переменную, которая является специфической в пределах блока. то есть в фигурных скобках. На выходе программы ничего не будет! В приведенном выше примере вы увидите, что объявлены две переменные: одна находится внутри блока if ($ var_2), а другая — вне блока If ($ var). Переменная, объявленная вне блока, будет доступна для блока if, но переменная, объявленная внутри блока, не будет доступна для внешней программы. Вывод вышеупомянутой программы будет таким образом. Таким образом, мы можем изменить значение переменной, не влияя на исходное значение. Our: После того, как переменная объявлена с модификатором доступа «our», она может использоваться во всем пакете. Предположим, у вас есть модуль Perl или пакет test.pm, переменная которого объявлена с областью действия our. Эта переменная может быть доступна в любых скриптах, которые будут использовать этот пакет. Если вы серьезно относитесь к программированию на Perl, вы должны начать свою программу с #! / USR / местные / бен / Perl использовать строгое;Это поможет вам написать лучше и чище код. «Использовать строгий» включает строгую прагму, которая заставит вас объявлять переменные с моим ключевым словом. Это хорошая практика программирования Perl ArrayЧто такое Perl Array?Массив — это специальный тип переменной, который хранит данные в форме списка; Доступ к каждому элементу можно получить с помощью номера индекса, который будет уникальным для каждого элемента. Вы можете хранить числа, строки, плавающие значения и т. Д. В вашем массиве. Это выглядит великолепно, так как же нам создать массив в Perl? В Perl вы можете определить массив, используя символ ‘@’, за которым следует имя, которое вы хотите дать. Давайте рассмотрим определение массива в Perl. Вот как мы определяем массив в Perl; Вы можете подумать, как нам нужно хранить данные в нем. Существуют разные способы хранения данных в массиве. Это зависит от того, как вы собираетесь его использовать. Это массив с 4 элементами. Индекс массива начинается с 0 и заканчивается до его максимального объявленного размера, в этом случае максимальный размер индекса равен 3. Вы также можете объявить массив вышеуказанным способом; единственное отличие состоит в том, что он сохраняет данные в массив, считая пробел в качестве разделителя. Здесь qw () означает слово кавычки. Значение этой функции заключается в создании списка слов. Вы можете использовать qw несколькими способами для объявления массива. Предположим, вы хотите присвоить значение 5- му элементу массива, как мы собираемся это сделать. Последовательный массивПоследовательные массивы — это те, где вы храните данные последовательно. Предположим, вы хотите хранить 1-10 цифр или алфавитов az в массиве. Вместо того, чтобы вводить все буквы, вы можете попробовать что-то вроде ниже — Размер массива PerlУ нас есть массив, который уже доступен, и вы не знаете, каков размер этого массива, и как это можно найти. Можем ли мы получить размер массива без использования функций? Да мы можем. Динамический МассивЧто такое динамический массив? Динамические массивы — это те, которые вы объявляете, не указывая для них никакого значения. Итак, когда именно мы сохраняем значения в этом массиве? Просто, мы храним их во время выполнения. Вот простая программа для этого. Для этой задачи мы будем использовать некоторые встроенные функции Perl. Функция split разделяет содержимое строки на массив на основе предоставленного ей разделителя. Эта функция также удалит разделитель из строки, в данном случае это ‘a’; Push, Pop, shift, unshift для массивов Perl:Эти функции могут использоваться в Perl для добавления / удаления элементов массива. Давайте посмотрим на пример, где мы можем использовать следующие функции.2-й, когда толчок: пн вт ср чт 3-й в нерабочее время: пт пн вт ср чт Четвертый, когда поп: пт пн вт ср 5-е, когда смена: пн вт ср Perl HashesЗачем нам хэш?Мы уже узнали о скалярах и массивах в предыдущих разделах. Что именно скаляры делают? Он хранит только целые числа и строки. Что именно делают массивы? Это коллекция скаляров, где вы получаете доступ к каждому элементу массива с помощью индексов. Но разве это хорошая идея использовать массив, когда у вас есть сотни и тысячи записей? Мы забудем, какой индекс имеет какое значение. Чтобы преодолеть эту ситуацию, у нас есть что-то вроде perl hash. Что такое хеши?Хеш также может содержать столько скаляров, сколько может содержать массив. Разница лишь в том, что у нас нет индекса, у нас есть ключи и значения. Хеш может быть объявлен, начиная с%, после которого следует имя хеша. Давайте посмотрим пример, как мы можем определить хеш Perl и как мы можем отличить это от массива Рассмотрим пример трех человек и их возраст представлен в массиве. Таким образом, трудно узнать индивидуальный возраст, так как нам нужно помнить оба указательных местоположения имени и возраста всех людей. Это может быть просто, когда у вас есть 3 имени, но когда у вас есть 1000 или больше? Ты знаешь ответ. Это мы можем преодолеть с помощью хэша. Пример хеширования: Чтобы напечатать возраст любого человека, вам просто нужно запомнить имя этого человека. Примечание: каждый ключ в хэше должен быть уникальным, иначе он переопределит ваше значение, которое было присвоено ранее. Как мы можем присвоить хеш другому хешу? Простой, так же, как мы делаем для Мы также можем напечатать весь хэш. Добавить Perl HashesКак видите, у нас уже есть хеш% newHash, и теперь нам нужно добавить в него больше записей. Perl Delete keyВы можете удалить запись из хэша. Вот как мы можем это сделать. Delete — это встроенная функция Perl. Здесь мы увидим пример присвоения хеша массиву. Примечание: всякий раз, когда вы печатаете хеш или когда вы сохраняете хеш в массив. Порядок всегда может отличаться. Это не то же самое всегда. Мы можем назначить только ключи или значения хеша массиву. Чтобы удалить все записи в хэше, мы можем напрямую присвоить хешу значение null. % newHash = (); # Это переопределит хеш без записей. Perl Условные заявленияМы можем использовать условные выражения в Perl. Итак, каковы условные заявления? Условные операторы — это те, в которых вы на самом деле проверяете соответствие некоторых обстоятельств вашему коду. Вспомните пример: вы покупаете фрукты и вам не нравится, когда цена превышает 100 баксов. Итак, правило здесь составляет 100 баксов. Perl поддерживает два типа условных операторов; они, если и если. Perl IfЕсли блок кода будет выполнен, когда условие истинно. Perl If ElseТаким образом, мы можем контролировать только одно условие одновременно. Это ограничение? Нет, вы также можете контролировать различные условия, используя if … elsif … else. Perl Else IfВыполнен блок elsif — значение 5 Могут быть ситуации, когда блоки кода if и elsif будут неуспешными. В этом случае блок кода else будет выполнен. Вы можете на самом деле исключить проверку кода else, если не хотите включать. Вложенный Perl IfВ этом случае вы можете использовать блок кода еще в одном блоке кода. Inside 1st else block – The value is 11 Perl UnlessYou have already got an idea what if does (If the condition is true it will execute the code block). Unless is opposite to if, unless code block will be executed if the condition is false. Inside 1st else block – The value is 5 Perl Using ifUsing unlessInside unless Block Perl Loops — Control StructuresPerl supports control structures similar to other programming languages. Perl supports four types of control structures for, foreach, while and until. We use these statements to, repeatedly execute some code. For loop PerlБлок кода будет выполняться до тех пор, пока условие не будет выполнено. Давайте рассмотрим пример того, как Perl зацикливает массив. Значение индекса массива 0 равно 1 Значение индекса массива 1 равно 2 Значение индекса массива 2 равно 3 Значение индекса массива 3 равно 4 Значение индекса 4 массива равно 5 Значение индекса 5 массива равно 6 Значение индекса 6 массива равно 7 Значение индекса массива 7 равно 8 Значение индекса массива 8 равно 9 Значение индекса массива 9 равно 10 Здесь в выражении for () содержится много операторов. Для каждого из них есть смысл.
|