Базовый синтаксис Perl

Perl заимствует возможности из C, sed, awk, shell-скриптов и многих других языков программирования. Его синтаксис несколько похож на эти языки, но также имеет свои особенности.

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

В Perl нет строгих правил форматирования; можно делать отступы в соответствии с вашим предпочитаемым стилем.


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

Интерактивное программирование

В командной строке можно использовать опцию-eдля ввода операторов и выполнения кода, как в примере ниже:

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

После ввода указанной выше команды и нажатия Enter выводится:

Hello World

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

Мы поместим следующий код в файлhello.pl:

Пример

#!/usr/bin/perl # Вывод "Hello, World" print "Hello, world\n";

В коде,/usr/bin/perl— это путь к интерпретатору Perl. Перед выполнением скрипта убедитесь, что файл имеет права на исполнение. Сначала мы можем изменить права доступа к файлу на 0755:

$ chmod 0755 hello.pl 
$ ./hello.pl 
Hello, world                   # 输出结果

print также может использовать круглые скобки для вывода строк. Следующие два оператора выводят одинаковый результат:

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

Файл скрипта

Код Perl можно записать в текстовый файл с расширением .pl или .PL.

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

Простое имя файла Perl:

run_oob.pl

Комментарии

Использование комментариев облегчает чтение вашей программы; это хорошая привычка программиста.

Способ комментирования в Perl — использовать символ # в начале инструкции, например:

# 这一行是 perl 中的注释

Perl также поддерживает многострочные комментарии. Наиболее распространённый метод — использовать POD (Plain Old Documentation) для многострочных комментариев. Метод следующий:

Пример

#!/usr/bin/perl # Это однострочный комментарий print "Hello, world\n"; =podКомментарий Это многострочный комментарий Это многострочный комментарий Это многострочный комментарий Это многострочный комментарий=cut

Запустите приведённую выше программу, вывод:

Hello, world

Примечание:

  • =pod и =cut могут находиться только в начале строки.
  • Начинается с = и заканчивается на =cut.
  • После = обязательно должен сразу следовать какой-либо символ; после =cut это не требуется.

Пробельные символы в Perl

Интерпретатор Perl не обращает внимания на количество пробельных символов; следующая программа также будет работать нормально:

Пример

#!/usr/bin/perl print "Hello, world\n";

Запустите приведённую выше программу, вывод:

Hello, world

Но если пробелы и разрывы строк находятся внутри строки, они будут выведены как есть:

Пример

#!/usr/bin/perl # Выведет разрывы строк print "Hello world\n";

Запустите приведённую выше программу, вывод:

Hello
          world

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


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

Perl может использовать одинарные и двойные кавычки для вывода строк, как показано ниже:

Пример

#!/usr/bin/perl print "Hello, world\n"; # Двойные кавычки print 'Hello, world\n'; # Одинарные кавычки

Результат вывода следующий:

Hello, world
Hello, world\n

Из результатов видно, что двойные кавычки \n выводят новую строку, а одинарные — нет.

Разница между двойными и одинарными кавычками в Perl: двойные кавычки могут нормально обрабатывать некоторые escape-последовательности и переменные, а одинарные не могут их обрабатывать и выводят их как есть.

Пример

#!/usr/bin/perl $a = 10; print "a = $a\n"; print 'a = $a\n';

Результат вывода следующий:

a = 10
a = $a\n

Здесь-документ

Здесь-документ, также называемый heredoc, hereis, here-string или here-script, — это метод определения строки в командных оболочках (таких как sh, csh, ksh, bash, PowerShell и zsh) и языках программирования (таких как Perl, PHP, Python и Ruby).

Обзор использования:

  • 1. После него должна стоять точка с запятой, иначе он не скомпилируется.
  • 2. EOF можно заменить любым другим символом, только убедитесь, что конечный маркер совпадает с начальным маркером.
  • 3. Конечный маркер должен находиться в начале строки и занимать отдельную строку (то есть он должен начинаться с начала строки, без пробелов или символов до или после него).
  • 4. Начальный маркер может быть без кавычек или с одинарными или двойными кавычками. Отсутствие кавычек действует так же, как двойные кавычки: встроенные переменные и escape-символы интерпретируются. С одинарными кавычками встроенные переменные и escape-символы не интерпретируются.
  • 5. Когда содержимому нужны встроенные кавычки (одинарные или двойные), не нужно добавлять escape-символы; он сам экранирует одинарные и двойные кавычки. Это эквивалентно использованию q и qq.

Пример

#!/usr/bin/perl $a = 10; $var = <<"EOF"; Это примерЗдесь-документа, с использованием двойных кавычек. Здесь можно вводить строки и переменные. Например:a = $a EOF print "$var\n"; $var = <<'EOF'; Это примерЗдесь-документа, с использованием одинарных кавычек. Например:a = $a EOF print "$var\n";

После выполнения вышеприведённой программы вывод:

这是一个 Here 文档实例,使用双引号。
可以在这输入字符串和变量。
例如:a = 10

这是一个 Here 文档实例,使用单引号。
例如:a = $a

Экранирующие символы

Если нам нужно вывести специальный символ, мы можем использовать обратную косую черту (\) для экранирования, например, чтобы вывести знак доллара ($):

Пример

#!/usr/bin/perl $result = "Example\"example\""; print "$result\n"; print "\$result\n";

После выполнения вышеприведённой программы вывод:


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

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

  • Компоненты идентификатора: английские буквы (a~z, A~Z), цифры (0~9) и знаки подчёркивания (_).
  • Идентификаторы начинаются с английской буквы или знака подчёркивания.
  • Идентификаторы чувствительны к регистру; $example и $Example представляют две разные переменные.
Другие расширения