Perl для чайников

  • Содержание

    Предисловие

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

  • Введение в мир Perl

    История языка Perl | Что такое Perl? Это сокращенное название языка программирования Practical Extraction and Report Language (Практический язык извлечений и отчетов).

    Иллюстрированный самоучитель по Perl

    Что подразумевается под "извлечениями" и "отчетами"? Почему практический язык? Для чего он предназначен?

  • Структура программы

    Простая программа
    Объявления и комментарии
    Выражения и операторы
    Вопросы и Упражнения

  • Типы данных

    Алфавит языка
    Скалярный тип данных
    Массивы скаляров
    Ассоциативные массивы
    Переменные
    Вопросы и Упражнения

  • Операции и выражения

    Арифметические операции
    Операции конкатенации и повторения
    Операции отношения
    Логические операции
    Побитовые операции
    Операции присваивания
    Ссылки и операция разыменования
    Операции связывания. Именованные унарные операции.
    Операции ввода/вывода
    Разные операции
    Списковые операции. Операции заключения в кавычки.
    Выражения
    Вопросы и Упражнения

  • Операторы

    Простые операторы
    Модификаторы простых операторов
    Составные операторы
    Операторы цикла
    Команды управления циклом
    Именованные блоки
    Оператор безусловного перехода
    Вопросы и Упражнения

  • Операции ввода/вывода

    Операция ввода команды
    Операция ()
    Функция print
    Вопросы и Упражнения

  • Работа с файлами

    Дескрипторы файлов
    Доступ к файлам
    Операции с файлами
    Получение информации о файле
    Операции с каталогами
    Вопросы и Упражнения

  • Форматы

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

  • Ссылки

    Виды ссылок
    Создание ссылок
    Разыменование ссылок
    Символические ссылки
    Использование ссылок
    Вопросы и Упражнения

  • Работа со строками

    Регулярные выражения
    Операции с регулярными выражениями
    Функции для работы со строками
    Вопросы и Упражнения

  • Подпрограммы и функции

    Определение подпрограммы
    Вызов подпрограммы
    Локальные переменные в подпрограммах
    Передача параметров
    В каких случаях функцию local нельзя заменить функцией mу
    Прототипы
    Рекурсивные подпрограммы
    Вопросы и Упражнения

  • Пакеты, библиотеки, модули

    Пакеты
    Библиотеки
    Модули
    Вопросы и Упражнения

  • Объектно-ориентированное программирование в языке Perl

    Классы и объекты
    Методы
    Обобщающий пример
    Вопросы и Упражнения

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

    Опции командной строки | При запуске интерпретатора peri из командной строки можно задать разнообразные режимы его работы. Это достигается передачей ему специальных опций, называемых еще переключателями или просто ключами, включающих или выключающих разные режимы работы интерпретатора.

  • Язык Perl и CGI-программирование

    Основные понятия
    HTML-формы
    Передача информации CGI-программе
    CGI-сценарии
    Вопросы и Упражнения

  • Ресурсы Perl

    Конференции | Язык Perl распространяется и развивается в глобальной сети Internet.

  • Краткая справка

    Perl — скриптовый язык программирования, разработанный бывшим лингвистом Ларри Уоллом в далеком 1987 году.

    Perl для чайников

    До появления PHP был самым популярным языком для работы в интернете, на нем писались домашние странички, форумы, скрипты для учета посещаемости ресурсов и многое другое. Со временем веб-разработчики стали использовать языки с более простым синтаксисом, поэтому популярность Perl значительно упала, но интерес в среде программистов к нему не угасает до сих пор.

    На сегодняшний день существуют две версии языка — Perl 5 и Perl 6. Шестая версия разрабатывалась с 2000 года, а релиз полноценного компилятора к ней вышел только в декабре 2016 года. В шестой версии применяется тот же принцип, что и в Java — при компиляции код программы преобразуется в байт-код, который запускается на виртуальной машине. Первым официальным символом Perl был верблюд, изображенный на обложке руководства по программированию на этом удивительно практичном и красивом языке. А вторым стала, как ни странно, яркая мультяшная бабочка. По словам самого Ларри, ему показалось, что так он может сделать Perl более заманчивым для маленьких детей. Это, разумеется, шутка потому, что современные дети не настолько глупы, чтобы попасться на эту удочку — они предпочтут продолжить свое беззаботное существование, рисуя в Unity примитивные стрелялки и платформеры.

    Философия Perl

    Когда Ларри Уолл создавал Perl, он хотел создать нечто среднее между низкоуровневыми и высокоуровневыми языками. Написать низкоуровневую программу достаточно тяжело и разобраться в коде другого программиста также будет непросто, но зато они работают быстро и обладают большими возможностями. С высокоуровневыми всё наоборот — их проще написать, но их возможности ограничены и  по скорости работы они будут уступать. Если провести аналогию с механической и автоматической коробкой передач в машине, то Perl будет неким полуавтоматом.

    Поскольку Ларри в прошлом был лингвистом, то и язык у него получился куда более живым и близким к человеческой речи, чем остальные. Как и в любом другом языке, в Perl можно сокращать слова и выражения, “объяснить” компьютеру, что от него требуется, несколькими разными способами, как Вашему собеседнику. Отсюда и происходит главный девиз Perl : “Есть больше одной возможности сделать это”. Например, Вам потребовалось ввести список или массив, содержащий большое количество людей. В С++, Python или Java это может выглядеть как C[0] = “Иван”, C[1] = “Петя”, C[3] = “Даша” и.т.д. Или так — С = {‘Иван’, ‘Петя’, ‘Даша’}. Perl позволяет убрать лишние элементы, которые доставляют Вам неудобства — кавычки, скобки и.т.д. При этом программа будет работать точно так же (при этом не стоит забывать о некоторых нюансах использования такого синтаксиса).

    Perl с самого начала был предназначен для работы с текстами, поэтому его возможности для обработки текстовых данных гораздо шире, чем у остальных языков. В Perl сначала использовались регулярные выражения (“регэкспы” или “регулярки” на сленге программистов) из UNIX. Затем для Perl была создана библиотека PCRE, которая сейчас применяется в PHP и большинстве современных языков. Поэтому Perl можно считать еще и прародителем всех современных регулярок.

    Где применяется Perl

    Данный язык часто применяется при системном администрировании устройств с ОС Linux, так как отлично подходит для написания небольших утилит. Также на нем можно с большим успехом работать и в вебе, ведь интернет, по большей части,представляет из себя текстовую информацию (например, html разметка). Поэтому сейчас на Perl можно также создавать сайты, парсеры, фильтры для электронной почты и.т.д. Из-за удобства работы с текстовыми данными его также используют в сфере биотехнологий для исследований и анализа генома.

    Сложность обучения языку Perl

    Perl считается одним из самых сложных языков для обучения, хотя и не всегда обоснованно. Сами perl-программисты говорят про него, что его просто использовать, но бывает трудно изучать. Например, даже очень большую программу Вы сможете сократить до нескольких строк, но зато придется потратить время на то, чтобы запомнить принятые в языке сокращения и условные обозначения.

    Поскольку Perl на сегодняшний день не является “модным” языком, таким как, например Ruby или Swift, то по нему сложно будет найти нужную литературу или курсы. Большую часть информации по языку Вы можете найти в знаменитых книгах Lama Book(для новичков) и Camel Book(средний и продвинутый уровень), а также на официальном сайте сообщества Perl и форумах по этой тематике.

    Плюсы/минусы Perl

    Недостатки Perl — это некоторая сложность в его изучении, а также проблемы с поиском материалов для изучения и готовых решений в интернете, в отличие от PHP. CMS на Perl существуют, но известны не так, как WordPress или Joomla, поэтому не получили широкого распространения.

    Из достоинств Perl стоит отметить его гибкость, универсальность и обширные возможности для обработки текстовых данных. В России вакансии для Perl-программистов встречаются довольно часто и зарплаты у них намного выше, чем у многих других айтишников потому, что знающих Perl не так то просто найти. Поэтому, если хотите высокую зарплату при отсутствии конкурентов, то можете смело отправлять заявку на должность Perl программиста в Yandex (Яндекс.Директ использует Perl), Mail.ru, Reg.ru и многие другие известные в России и за рубежом компании.

    Сопутствующие технологии

    CPAN — архив программ и модулей , а также исходников самого языка.

    С него можно скачать и установить полезные для Вас модули, чтобы использовать в своем проекте.

    ActivePerl — позволяет программировать на Perl в Windows, есть бесплатная версию.

    Catalyst — веб-фреймворк на Perl, использующий концепцию MVC

    Moose — расширение, упрощающее работу с ООП в Perl 5

    Parrot — виртуальная машина, написанная на С и С++, которая используется в Perl 6 для выполнения байт-кода.

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

    print $DNA1, $DNA2, "\n";

    Здесь оператор печати имеет 3 части, разделенные запятыми: 2 ДНК фрагмента в 2 переменных и разделитель строки. Вы можете достигнуть такого же результата со следующим оператором печати

    print "$DNA1$DNA2\n";

    Возможно нужно перефразировать слоган Perl : «Существует не только 2 способа сделать это!»

    До завершения этой части, давайте, обратим внимание на другие применения переменных Perl. Вы уже увидели применение переменных для содержания символьной строки данных цепочки ДНК. Есть также другие типы данных, и для них тоже нужны переменные в языке программитрования. В Perl скалярная переменная, такая как $DNA, может содержать символьную строку, целое число и число с плавающей запятой (с десятичной запятой), логическое значение (true or false) и др. Когда необходимо, Perl вычисляет какие данные в переменной. А сейчас попытайтесь добавить следующие кодовые строки в Пример 4-1 или Пример 4-2 , сохраняя число в скалярную переменную и распечатывая ее.

    4.4. Преобразование ДНК в РНК

    Большая часть того времени, которое Вы, программист биоинформатики, тратите, уйдет на внесение изменений, аналогичных тем, что в Примере 4-1 и Примере 4-2. Вы получите какие-то данные, это будет ДНК, протеин, записи Генетического Банка или что-то еще, затем Вы будете оперировать этими данными и распечатывать какие-то результаты.

    Пример 4-3 ещё одна программа, которая оперирует данными ДНК, она преобразует ДНК в РНК. В клетке преобразование ДНК в РНК результат работы хрупких, сложных, исправляющих ошибки молекулярных механизмов[3] . Здесь же это простая подстановка. Когда ДНК преобразуется в РНК, все T заменяются на U, и это все, что нужно знать нашей программе[4] .

    [3] Кратко говоря, кодирование ДНК цепочки – это обратное дополнение другой цепочки, которая используется как образец для синтезирования его обратного дополнения, такого как РНК, где Т заменено на U. C двумя обратными дополнениями, это то же, что кодирование замены T на U.

    [4] Мы игнорируем механизм вырезания участков РНК вне интронов, это ясно. T обозначает Тимин; U обозначает Урацил.

    Example 4-3. Transcribing DNA into RNA

    Вот вывод данных Примера 4-3:

    Эта короткая программа затрагивает важную часть Perl: способность возможность легко оперировать текстовыми данными, такими как символьная строка с ДНК. Операции могут быть различными: трансляция, реверсия, переупорядочивание и т.п. Эти возможности Perl – это одна из главных причин популярности в биоинформатике и среди программистов в целом.

    Сначала программа делает копию ДНК и устанавливает ее в переменную с названием $RNA.

    $RNA = $DNA;

    Стоит заметить, что когда этот оператор выполнен, эта переменная $RNА содержит ДНК.[5] Помните, Вы вольны называть переменные как Вам угодно, но из-за неточных названий переменных возможны путаницы. В данном случае, после копирования следует информативный комментарий, а за ним оператор, суть которого заставить переменную $RNA содержать РНК, так что все в порядке. Это способ не допустить, чтобы в $RNA содержалось что-либо кроме РНК.

    [5] Вернемся к обсуждению из Параграфа 4.2.4.3 о важности порядка частей в операторе присваивания. Здесь значение $DNA, которое является цепочкой данных ДНК, была сохранена в переменной $DNA и присваивается переменной $RNA. Если бы вы написали $DNA=$RNA, значение переменной $RNA (которое не содержит ничего) было бы присвоено переменной $DNA, фактически уничтожая цепочку данных ДНК в этой переменной и оставляя 2 пустые переменные.

    ($RNA = $DNA) =~ s/T/U/g;

    В Примере 3-1 производится с помощью этого оператора:

    $RNA =~ s/T/U/g;

    В этом выражении два новых элемента: оператор связывания (=~) и команда подстановки s/T/U/g.

    Очевидно, достаточно использовать оператор связывания (=~) для переменных, содеражщих символьные строки; здесь переменная $RNA содержит цепочку данных ДНК. Оператор связывания означает «применить операцию справа от символьной строки к переменной слева.

    Оператор подстановки, показанный на Рисунке 4-1, требует немного больше объяснений. Разные части команды разделены (или разграничены) косой чертой. s в начале обозначает, что это подстановка. После первой / идет T, который указывает элемент в символьной строке, который должен быть заменен. После второй / идет U – это элемент для замены T. После третьей / стоит g. g означает «global» — это один из возможных модификаторов, которые могут ставиться в этой части оператора. Global означает «сделать это замещение во всей символьной строке», проще говоря, везде, где в этой символьной строке возможно.

    Figure 4-1. The substitution operator

    Таким образом, значение оператора в целом – «замещение всех T на U в символьной строке, содержащейся в переменной $RNA».

    Оператор подстановки это пример использования регулярных выражений.

    Регулярные выражения это ключ к оперированию текстовыми данными, одно из мощнейших возможностей Perl, Вы сможете увидеть это в следующих главах.

    4.5. Использование документации Perl.

    Самый важный ресурс для Perl программиста это Perl-документация. Она скорее всего была установлена на Ваш компьютер, а так её можно найти в интернете на сайте Perl. Perl-документация может немного отличаться в различных компьютерных системах, но web-версия одинакова для всех. Это версия, на которую я буду ссылаться в данной книге. Посмотрите ссылки в Приложении A, чтобы узнать подробности о различных ресурсах с Perl- документацией.

    Чтобы попробовать это, давайте найдем в справочнике оператор печати.

    Учебник Perl по-русски

    Для начала, откройте свой веб-браузер и зайдите на http://www.perl.com. Затем кликните на сcылку Документация. Выберите “Perl’s Builin Functions”, затем “Alphabetical Listing of Perl’s Functions”. Вы увидите довольно длинный альфавитный список функций Perl. Возможно, как-нибудь Вы снова захотите найти эту страницу, поэтому можно сделать закладку на неё в веб-браузере, может оказаться, что вы часто обращаетесь к ней. Теперь кликните на Print, чтобы прочитать об операторе печати.

    Попробуйте показанные примеры, чтобы почувствовать, как на самом деле используются языковые возможности. Это обычно самый быстрый способ извлечь необходимые знания.

    Как-нибудь при просмотре документации Вы обнаружите, что чтение документации помогает ответить на некоторые вопросы, но так же вызывает другие. Документация направлена подать всю информацию в сжатом виде, что может испугать новичков. Например, документация по функции Print начинается так «Печатает символьную строку или список символьных строк, разделенных запятыми. Выдает TRUE в случае успеха». Но затем идет куча мусора (или так может показаться на данном этапе обучения): индекс файла, выходной поток, списковый контекст…

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

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

    4.6. Рассчет обратного дополнения с помощью Perl

    Как вы помните из Главы 1, полимер ДНК составлен из нуклеотидов. Установив тесную взаимосвязь между 2 цепочками ДНК в двойной спирали, оказалось, что довольно просто написать программу, которая зная одну цепочку распечатывает другую. Данный расчет — важная часть многих биоинформатичеких программ. Например, при поиске ДНК в базе данных обычно автоматически идет и поиск обратного дополнения ДНК, в результате может быть найдена цепочка обратного порядка некоего известного гена.

    Не затягивая более, рассмотрим Пример 4-4, в котором используется несколько известных свойств Perl. Как Вы можете видеть, сначала пробуется один метод, который оказывается неудачным, затем другой успешный.

    Example 4-4. Calculating the reverse complement of a strand of DNA

    Вот как должен выглядеть результат Примера 4-4 на вашем экране:

    Вы можете проверить, действительно ли 2 цепочки ДНК это обратные наборы друг друга, прочитав один слева направо и другой справа налево, т.е. начав читать с разных концов. Затем сравните каждую пару основ, когда читаете 2 цепочки: они должны всегда быть в паре С с G и A с Т.

    Прочитав только несколько символов начиная с начальной ДНК и обратного набора ДНК из первой попытки вы увидете, что первая попытка рассчета обратного дополнения не удалась. Это был неверный алгоритм.

    С таким Вы иногда будете встречаться во время программирования. Вы напишите программу, завершите работу, а затем обнаружите, что она не работает так, как вы ожидали. В первом случае мы использовали возможности языка, с которыми уже были знакомы, и попытались их применить для новой задачи. Но это не сработало. Что было не так?

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

    Если это может быть решено на компьютере, значит возможно решить и с помощью Perl. Вопрос в том, как именно?

    В примере 4-4 первая попытка вычислить обратный набор не удалась. Каждая основа в символьной строке была транслирована как целая, используя 4 замены в глобальном виде. Нужен другой способ. Вы можете продвигаться по ДНК слева направо, смотреть на каждую основу друг за другом, делать изменения в дополнительном коде и затем смотреть на следующую основу в ДНК, передвигаясь к концу символьной строки. Затем просто развернуть символьную строку. Это на самом деле действенный метод и его совсем не сложно выполнить в Perl, хотя потребуются некоторые знания языка программирования, которые до Главы 5 не встречались.


    ДОБАВИТЬ КОММЕНТАРИЙ  [можно без регистрации]
    перед публикацией все комментарии рассматриваются модератором сайта — спам опубликован не будет

    Хотите опубликовать свою статью или создать цикл из статей и лекций?
    Это очень просто – нужна только регистрация на сайте.

    Windows

    В Windows мы будем использовать DWIM Perl. Это пакет программ, содержащий компилятор/интерпретатор Padre, Perl IDE, и ряд модулей из CPAN.

    Для начала зайдите на сайт DWIM Perl и откройте страницу загрузки DWIM Perl для Windows.

    Скачайте исполняемый файл и установите его в вашу систему. Предварительно пожалуйста убедитесь, что у вас не установлена любая другая версия Perl.

    Конечно, разные версии Perl можно заставить работать вместе, но как это сделать потребует дополнительных разъяснений. Поэтому пусть пока у вас в системе будет установлена одна единственная версия Perl.

    Практический Перл для начинающего

    Linux

    Большинство современных Linux-дистрибутивов поставляются со свежей версией Perl. Её мы и будем использовать. В качестве редактора вы можете установить Padre — большинство дистрибутивов дают возможность сделать это с помощью стандартного менеджера пакетов. Или вы можете выбрать любой другой текстовый редактор. Если вы дружите с Vim или Emacs, используйте его. Если нет, попробуйте Gedit — простой и удобный.

    Apple

    Уверен, Маки также поставляются с предустановленным Perl, ну или вы можете легко установить его с помощью стандартных средств установки.

    Редактор и IDE

    Хотя я это и советую, вовсе не обязательно использовать Padre IDE, чтобы писать код на Perl. В следующей части учебника я перечислю пару редакторов и IDE, которые вы можете использовать для программирования на Perl. Но даже если вы выберете другой редактор, я бы рекомендовал — для пользователей Windows — установить упомянутый выше пакет DWIM Perl.

    Он идет с большим количеством готовых Perl-модулей, это сэкономит вам массу времени и сил.

    Видео

    Вы можете посмотреть видео Hello world with Perl (англ.), которое я загрузил на YouTube. Также обратите внимание на Beginner Perl Maven video course (англ.).

    Первая программа

    Ваша первая программа будет выглядеть, например, так:

    use 5.010; use strict; use warnings; say «Hello World»;

    Рассмотрим её шаг за шагом.

    Hello world

    Как только вы установили DWIM Perl, вы можете нажать на «Пуск -> Все программы -> DWIM Perl -> Padre», откроется редактор с пустым новым файлом.

    Введите:

    print «Hello World\n»;

    Как вы, наверное, заметили, команды в Perl заканчиваются точкой с запятой ;. Знак \n используется для обозначения перевода строки. Строки заключены в двойные кавычки «. Функция print печатает текст на экран. В результате выполнения этого кода Perl выведет на экран текст, заканчивающийся переводом строки.

    Сохраните файл как hello.pl, чтобы затем вы запустить его командой «Run -> Run Script». Появится новое окно с результатами работы программы.

    Готово, вы писали ваш первый Perl-скрипт.

    Теперь давайте его немного усовершенствуем.

    Perl в командной строке для тех, кто не пользуется Padre

    Если вы не используете Padre или другую IDE, вы не сможете запустить скрипт прямо из редактора. По крайней мере, по умолчанию. Нужно будет открыть shell (или cmd в Windows), перейти в каталог, где вы сохранили hello.pl и набрать команду:

    perl hello.pl

    Так Perl-скрипты запускаются из командной строки.

    say() вместо print()

    Давайте немного улучшим наш однострочный Perl-скрипт:

    Для начала нужно указать минимальную версию Perl, которую мы хотели бы использовать:

    use 5.010; print «Hello World\n»;

    Теперь можете запустить скрипт еще раз, выбрав в меню «Run -> Run Script», или нажав клавишу F5. Перед запуском файл будет автоматически сохранен.

    В целом, указание минимальной требуемой версии Perl является хорошей практикой.

    В нашем случае это добавляет в Perl также несколько новых функций, в том числе оператор say(). say похож на print, но короче, и автоматически добавляет в конце символ перевода строки.

    Вы можете переписать ваш код так:

    use 5.010; say «Hello World»;

    Мы заменили print на say и убрали \n с конца строки.

    Сейчас вы скорее всего используете Perl версии 5.12.3 или 5.14. Большинство современных Linux-дистрибутивов версии поставляются с Perl 5.10 или более поздней версии.

    К сожалению, кое-где ещё работают старые версии Perl. В них нет оператора say(), и, кроме того, могут потребоваться некоторые другие изменения в примерах, которые мы рассмотрим позднее. В дальнейшем я буду отмечать, если используются возможности версии 5.10.

    «Ремни безопасности»

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

    use 5.010; use strict; use warnings; say «Hello World»;

    Команда use говорит Perl, что нужно загрузить и использовать каждую прагму.

    strict и warnings помогут вам отловить некоторые общие ошибки в коде, а иногда даже просто не дадут вам их сделать. Это очень удобно.

    Чтение ввода

    Теперь давайте ещё улучшим нашу программу: будем спрашивать у пользовательницы её имя, а затем выводить его на экран.

    use 5.010; use strict; use warnings; say «What is your name? «; my $name = <STDIN>; say «Hello $name, how are you?»;

    $name называется скалярной переменной, или просто: скаляр.

    Переменные объявляются при помощи ключевого слова my. (По секрету заметим, что на самом деле это одно из требований, добавленных прагмой strict).

    Скалярные переменные всегда начинаются со знака доллара: $. <STDIN> это инструмент для чтения строки с клавиатуры.

    Введите наш новый код и запустите его, нажав клавишу F5.

    Он спросит имя. Введите его и нажмите ENTER, чтобы сообщить Perl об окончании ввода.

    Обратите внимание, что вывод нашей программы слегка кривой: запятая после имени появляется на новой строке. Это произошло потому, что ENTER, который вы нажали после ввода имени, попал в переменную $name.

    Избавляемся от переводов строк

    use 5.010; use strict; use warnings; say «What is your name? «; my $name = <STDIN>; chomp $name; say «Hello $name, how are you?»;

    Это настолько распространенная в Perl задача, что есть специальная функция chomp, которая удаляет концевой перенос строки.

    Заключение

    В начало каждого скрипта, который вы пишете, всегда добавляйте use strict; и use warnings;. Также крайне рекомендуется добавлять use 5.010;.

    Задания

    Я обещал задания.

    Попробуйте запустить следующий скрипт:

    use strict; use warnings; use 5.010; say «Hello «; say «World»;

    Он не выводит сообщение в одну строку. Почему? Как это исправить?

    Задание №2

    Напишите скрипт, который запрашивает у пользовательницы два числа, одно за другим. Затем выводит сумму этих двух чисел.

    Что дальше

    Следующая часть нашего учебника расскажет про редакторы, IDE и среду разработки для Perl.

    Это первая часть учебника по Perl.

    В ней вы узнаете, как установить Perl на Microsoft Windows и как начать использовать его на Windows, Linux или Mac.

    Вы узнаете, как установить и настроить среду разработки, или, говоря простым языком: какой редактор или IDE использовать для Perl-программирования?

    Также мы увидим стандартный пример «Hello World».

    Comments

    Добавить комментарий

    Закрыть меню