Учебники

Perl — обзор синтаксиса

Perl заимствует синтаксис и понятия из многих языков: awk, sed, C, Bourne Shell, Smalltalk, Lisp и даже английского. Однако между языками есть определенные различия. Эта глава предназначена для быстрого ознакомления с синтаксисом, ожидаемым в Perl.

Программа Perl состоит из последовательности объявлений и операторов, которые выполняются сверху вниз. Циклы, подпрограммы и другие управляющие структуры позволяют вам перемещаться внутри кода. Каждое простое утверждение должно заканчиваться точкой с запятой (;).

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

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

Программирование в интерактивном режиме

Вы можете использовать интерпретатор Perl с параметром -e в командной строке, который позволяет выполнять операторы Perl из командной строки. Давайте попробуем что-то в $ prompt следующим образом:

$perl -e 'print "Hello World\n"'

Это выполнение даст следующий результат —

Hello, world

Script Mode Программирование

Предполагая, что вы уже используете $ prompt, давайте откроем текстовый файл hello.pl с помощью редактора vi или vim и поместим следующие строки в ваш файл.

Live Demo

#!/usr/bin/perl

# This will print "Hello, World"
print "Hello, world\n";

Здесь / usr / bin / perl является действительным двоичным файлом интерпретатора perl. Перед выполнением сценария обязательно измените режим файла сценария и дайте ему привилегию на выполнение. Обычно настройка 0755 работает отлично, и, наконец, вы выполняете приведенный выше сценарий следующим образом:

$chmod 0755 hello.pl
$./hello.pl

Это выполнение даст следующий результат —

Hello, world

Вы можете использовать скобки для аргументов функций или опустить их по своему вкусу. Они требуются только время от времени для выяснения вопросов приоритета. Следующие два утверждения дают одинаковый результат.

print("Hello, world\n");
print "Hello, world\n";

Расширение файла Perl

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

В соответствии с соглашением Perl файл Perl должен быть сохранен с расширением .pl или .PL, чтобы быть распознанным как работающий сценарий Perl. Имена файлов могут содержать цифры, символы и буквы, но не должны содержать пробелов. Используйте подчеркивание (_) в местах пробелов.

Комментарии в Perl

Комментарии на любом языке программирования являются друзьями разработчиков. Комментарии могут использоваться, чтобы сделать программу удобной для пользователя, и они просто пропускаются интерпретатором, не влияя на функциональность кода. Например, в приведенной выше программе строка, начинающаяся с hash #, является комментарием.

Проще говоря, комментарии в Perl начинаются с символа хеша и заканчиваются до конца строки —

# This is a comment in perl

Строки, начинающиеся с =, интерпретируются как начало раздела встроенной документации (pod), а все последующие строки до следующего = cut игнорируются компилятором. Ниже приведен пример —

Live Demo

#!/usr/bin/perl

# This is a single line comment
print "Hello, world\n";

=begin comment
This is all part of multiline comment.
You can use as many lines as you like
These comments will be ignored by the 
compiler until the next =cut is encountered.
=cut

Это даст следующий результат —

Hello, world

Пробелы в Perl

Программа Perl не заботится о пробелах. Следующая программа работает отлично —

#!/usr/bin/perl

print       "Hello, world\n";

Но если пробелы находятся внутри строк в кавычках, они будут напечатаны как есть. Например —

Live Demo

#!/usr/bin/perl

# This would print with a line break in the middle
print "Hello
          world\n";

Это даст следующий результат —

Hello
          world

Все типы пробелов, такие как пробелы, символы табуляции, новые строки и т. Д., Эквивалентны для интерпретатора, если они используются вне кавычек. Строка, содержащая только пробел, возможно, с комментарием, называется пустой строкой, и Perl полностью игнорирует ее.

Одиночные и двойные кавычки в Perl

Вы можете использовать двойные или одинарные кавычки вокруг строк:

Live Demo

#!/usr/bin/perl

print "Hello, world\n";
print 'Hello, world\n';

Это даст следующий результат —

Hello, world
Hello, world\n$

Существует важное различие в одинарных и двойных кавычках. Только двойные кавычки интерполируют переменные и специальные символы, такие как символы новой строки \ n, тогда как одинарные кавычки не интерполируют никакие переменные или специальные символы. Ниже приведен пример, где мы используем $ a в качестве переменной для хранения значения и последующей печати этого значения —

Live Demo

#!/usr/bin/perl

$a = 10;
print "Value of a = $a\n";
print 'Value of a = $a\n';

Это даст следующий результат —

Value of a = 10
Value of a = $a\n$

«Здесь» Документы

Вы можете хранить или печатать многострочный текст с большим комфортом. Даже вы можете использовать переменные внутри документа «здесь». Ниже приведен простой синтаксис, внимательно проверьте, не должно быть пробелов между << и идентификатором.

Идентификатором может быть либо простое слово, либо какой-либо текст в кавычках, как мы использовали EOF ниже. Если идентификатор указан в кавычках, тип используемой вами цитаты определяет обработку текста внутри документа здесь, как и при обычном цитировании. Идентификатор без кавычек работает как двойные кавычки.

Live Demo

#!/usr/bin/perl

$a = 10;
$var = <<"EOF";
This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

$var = <<'EOF';
This is case of single quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

Это даст следующий результат —

This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be
interpolated. For example value of a = 10

This is case of single quote so variable value will be
interpolated. For example value of a = $a

Убегающие персонажи

Perl использует символ обратной косой черты (\) для экранирования символов любого типа, которые могут помешать нашему коду. Давайте возьмем один пример, где мы хотим напечатать двойную кавычку и знак $ —

Live Demo

#!/usr/bin/perl

$result = "This is \"number\"";
print "$result\n";
print "\$result\n";

Это даст следующий результат —

This is "number"
$result

Perl идентификаторы

Идентификатор Perl — это имя, используемое для идентификации переменной, функции, класса, модуля или другого объекта. Имя переменной Perl начинается с $, @ или%, за которыми следуют ноль или более букв, подчеркиваний и цифр (от 0 до 9).

Perl не допускает использование знаков препинания, таких как @, $ и% в идентификаторах. Perl — это чувствительный к регистру язык программирования. Таким образом, $ Manpower и $ manpower — это два разных идентификатора в Perl.