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

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

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

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

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.