Первая программа и запуск скрипта

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

Скрипт — это текстовый файл с кодом, который выполняется построчно специальной программой-интерпретатором (для Perl это программа perl), без предварительной компиляции в отдельный исполняемый файл.

Зачем это нужно

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

Хорошая новость: минимальная Perl-программа — это буквально одна строка кода. Но вокруг неё есть несколько важных «обвязочных» элементов, которые стоит понимать с самого начала, потому что они встретятся в каждом файле, который ты когда-либо напишешь на этом языке.

Простейшая программа: вывод текста

Вот полноценный файл на Perl, который выводит приветствие на экран.

#!/usr/bin/perl
use strict;
use warnings;

print "Привет, мир!\n";

Сохраним этот текст в файл с именем hello.pl — расширение .pl традиционно используют для Perl-скриптов (от слова Perl), хотя формально интерпретатору расширение не важно, важно только содержимое файла. Разберём его построчно.

Shebang-строка: как система узнаёт, чем запускать файл

Первая строка файла — #!/usr/bin/perl — называется shebang (иногда пишут «шебанг»). Это специальная конструкция, которая работает только в Linux и macOS (в системах на основе Unix) и указывает операционной системе, какой программой нужно выполнять этот файл, если его запускают напрямую, как исполняемый.

Символы #! — это и есть shebang, а /usr/bin/perl — путь к программе-интерпретатору Perl на диске. Получается инструкция: «если кто-то попытается запустить этот файл напрямую, передай его на выполнение программе, которая лежит по пути /usr/bin/perl». Важная деталь: с точки зрения самого языка Perl, строка #!/usr/bin/perl выглядит как обычный комментарий, ведь символ # в Perl начинает комментарий, и интерпретатор Perl её просто игнорирует при выполнении кода. Это операционная система обрабатывает shebang, а не сам Perl.

В Windows shebang-строка не имеет смысла для самой ОС (там ассоциация файла с программой настраивается иначе), но её всё равно принято писать — это стандарт, который упрощает жизнь при переносе скрипта на Linux-сервер, а Perl-интерпретатор её всё так же проигнорирует как комментарий.

use strict и use warnings: страховка от ошибок

Следующие две строки — use strict; и use warnings; — не обязательны с точки зрения синтаксиса (программа запустится и без них), но пропускать их не стоит почти никогда, и вот почему.

Perl исторически позволяет очень многое «по умолчанию»: например, можно использовать переменную, ни разу явно её не объявив, — и язык не будет ругаться, просто тихо создаст её на лету. Звучит удобно, но на практике это частый источник ошибок: опечатался в имени переменной — получил новую пустую переменную вместо ошибки, а баг найдёшь только тогда, когда программа выдаст неожиданный результат.

use strict; включает более строгий режим: теперь каждую переменную нужно объявлять явно (через ключевое слово my, о котором чуть ниже), а любая опечатка в имени переменной становится настоящей ошибкой при запуске, а не молчаливым багом. use warnings; включает предупреждения о подозрительных местах в коде — например, о попытке использовать переменную, которой ещё не присвоено значение. Договорённость среди опытных Perl-разработчиков простая: эти две строки пишутся в начале практически любого серьёзного скрипта, это часть хорошего тона в языке.

print: вывод текста на экран

Главная строка программы — print "Привет, мир!\n";. Функция print выводит на экран то, что ей передали в кавычках. Здесь это строка "Привет, мир!", и в конце дописан специальный символ \n — он обозначает перевод строки (перенос курсора на новую строку), а не выводится на экран как текст. Без \n следующая выведенная строка (или приглашение терминала) прилепится сразу после текста, без переноса.

Обрати внимание на точку с запятой ; в конце строки — в Perl, как во многих языках со схожим синтаксисом (например, в Java или C++), каждая инструкция обязательно завершается точкой с запятой. Забыть её — самая частая ошибка новичка, и интерпретатор в этом случае сообщит об ошибке синтаксиса.

Запуск скрипта

Есть два способа запустить файл hello.pl из терминала (командной строки). Первый — явно указать интерпретатор:

perl hello.pl

Этот способ работает всегда и везде, где установлен Perl, независимо от shebang-строки и операционной системы — мы напрямую говорим: «программа perl, выполни файл hello.pl».

Второй способ — запустить файл как самостоятельную программу, положившись на shebang (работает в Linux и macOS). Для этого сначала нужно один раз дать файлу право на выполнение:

chmod +x hello.pl
./hello.pl

chmod +x hello.pl — команда операционной системы (не Perl), которая делает файл исполняемым. ./hello.pl запускает его напрямую — и вот тут в дело вступает shebang: система читает первую строку файла, видит #!/usr/bin/perl и понимает, что нужно передать выполнение интерпретатору Perl.

Вывод (одинаковый для обоих способов запуска):

Привет, мир!

Частые ошибки

  • Забыть точку с запятой в конце инструкции. Интерпретатор сообщит об ошибке синтаксиса, часто указывая на следующую строку — это может сбить с толку новичка, который ищет ошибку не там, где она есть.
  • Забыть \n в конце print и удивляться, что следующий вывод «слипается» с предыдущим. Perl не переносит строку автоматически — символ переноса нужно указывать явно.
  • Забыть chmod +x перед запуском через ./hello.pl. Система откажет в выполнении файла с ошибкой доступа, если у файла нет права на выполнение.
  • Пропустить use strict и use warnings «для простоты». Для крошечного учебного примера это не страшно, но в любом коде чуть сложнее — это верный способ потратить много времени на поиск опечатки, которую строгий режим нашёл бы за секунду при запуске.

Итоги

  • Минимальный Perl-скрипт — это файл с расширением .pl, содержащий shebang-строку, подключение use strict и use warnings, и сам код.
  • Shebang (#!/usr/bin/perl) указывает операционной системе, каким интерпретатором запускать файл напрямую; сам Perl воспринимает эту строку как обычный комментарий.
  • print выводит текст на экран; \n отвечает за перенос строки и его нужно указывать явно.
  • Запустить скрипт можно командой perl hello.pl (работает везде) или напрямую через ./hello.pl после chmod +x (только в Linux/macOS).
Проверьте себя
1. Что делает shebang-строка #!/usr/bin/perl в начале файла?
AПодключает библиотеку регулярных выражений
BУказывает операционной системе, каким интерпретатором запускать файл напрямую
CЯвляется обязательной частью синтаксиса самого языка Perl
DВыводит версию Perl на экран
2. Зачем в начале Perl-скрипта принято писать use strict и use warnings?
AБез них программа вообще не запустится
BОни ускоряют выполнение программы
CОни требуют явного объявления переменных и предупреждают о подозрительных местах в коде, помогая находить ошибки раньше
DОни автоматически переводят код на английский язык