Шаг 5.
Выражения и операторы

    На этом шаге мы разберем способы задания выражений и использования операторов.

    Оператор - это часть текста программы, которую интерпретатор преобразует в законченную инструкцию, выполняемую компьютером.

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

Дадим определения всем допустимым лексемам.

    Идентификатор - это последовательность букв, цифр и символа подчеркивания, начинающаяся с буквы или подчеркивания и используемая для именования переменных, функций, подпрограмм, дескрипторов файлов, форматов и меток в программе. Можно использовать любые идентификаторы в программе, если они не совпадают с ключевыми словами языка - предопределенными идентификаторами, которые имеют специальное значение в языке Perl (например, if, goto, unless и т.д.).

    Литерал (буквальная константа) - символ или слово в языке программирования, определяющие в отличие от переменной свое собственное значение, а не имя другого элемента языка. В Perl литералами являются числа и строки. Например:

123         # Целое число.
23.56       # Вещественное число с фиксированной точкой.
2E+6        # Вещественное число с плавающей точкой.
"Язык Perl" # Строковый литерал.
'Язык Perl' # Строковый литерал.

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

Примеры:
++$n;                                    # Унарная операция (++).
23*$n;                                   # Бинарная операция (*).
$n >= 3 ? print "true" : print "false";  # Тернарная операция (?:).

    Разделитель - это символ ";" (точка с запятой), которым завершается любой оператор и который сообщает об этом интерпретатору. Использование разделителя позволяет на одной строке задавать несколько операторов, хотя это и не принято в практике программирования, так как ухудшает читаемость текста программы.

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

    Можно вообще не использовать пробельные символы в операторе, но для обеспечения читаемости программы мы рекомендуем отделять лексемы одним пробелом, тем более что могут встречаться ситуации, когда интерпретатор не однозначно выделяет лексемы из непрерывного потока символов.

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

   .   .   .   .
   {
     оператор_1;
     .    .    .
     оператор_N;
   }
   .   .   .   .


    Замечание. Обратим внимание на то, что, в отличие от языков программирования С и Pascal, составные операторы Perl определяются в терминах блоков, а не в терминах операторов. Это означает, что там, где нужен блок, он всегда должен задаваться с помощью фигурных скобок. В составных операторах, если даже блок состоит из одного оператора, он должен быть заключен в фигурные скобки. Такой синтаксис не приводит к двусмысленностям и, например, во вложенных операторах условия всегда ясно, с каким if согласуется else или elsif. Метка, представляющая собой идентификатор с двоеточием ":", в составных операторах не обязательна, но если она присутствует, то имеет значение для операторов управления циклами next, last и redo.

    На следующем шаге мы остановимся на алфавите языка Perl.




Предыдущий шаг Содержание Следующий шаг