Первая программа и запуск скрипта
Пишем и запускаем самую первую программу на 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.plchmod +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).