Выражения и операторы
Оператор – это часть текста программы, которую интерпретатор преобразует в законченную инструкцию, выполняемую компьютером. С точки зрения синтаксиса языка (способов составления правильных конструкций, распознаваемых интерпретатором) оператор состоит из лексем – минимальных единиц языка, которые имеют определенный смысл для интерпретатора. Под минимальной единицей языка понимается такая его единица, которая не может быть представлена более мелкими единицами при дальнейшем ее синтаксическом разборе. В языке Perl лексемами могут быть идентификаторы, литералы, знаки операций и разделитель.
Мы дадим определения всем допустимым в языке лексемам. Хотя их семантика (смысл) может оказаться для начинающих программистов и не совсем ясна, но мы вернемся к некоторым определениям в последующих главах, где уточним их и синтаксис, и семантику в связи с вводимыми элементами языка. Дело в том, что, к сожалению, невозможно описать язык без ссылок вперед.
Идентификатор – это последовательность букв, цифр и символа подчеркивания "_", начинающаяся с буквы или подчеркивания и используемая для именования переменных, функций, подпрограмм, дескрипторов файлов, форматов и меток в программе. Программист может использовать любые правильные идентификаторы для именования перечисленных объектов программы, если только они не совпадают с ключевыми словами языка – предопределенными идентификаторами, которые имеют специальное значение для интерпретатора языка Perl, например if, unless, goto и т. д. Примеры правильных и неправильных идентификаторов представлены в примере 2.3.
Пример 2.3. Правильные и неправильные идентификаторы.
# Правильные идентификаторы myName1 my_Name1 _myName__1 # Неправильные идентификаторы 1 myName # Начинается с цифры. -myName # Начинается не с символа буквы или подчеркивания. my%Name # Используется недопустимый для идентификаторов символ my # my является зарезервированным словом.
Замечание
Забегая вперед, скажем, что так как имена переменных Perl начинаются со специального символа (" $ ", " @ ", " % "), определяющего их тип, после которого следует идентификатор, то в этом случае использование идентификатора, совпадающего с ключевым словом Perl, является правомочным и не вызывает ошибку интерпретатора. Так, следующие имена переменных являются допустимыми: $print, @do, %if, однако подобная практика не рекомендуется. Это замечание не относится к идентификаторам, используемым для именования дескрипторов файлов и меток, имена которых не начинаются с определенных символов.
(Как используются идентификаторы для объявления переменных см. часть 3)
(Как используются идентификаторы в дескрипторах файлов см. часть 7)
(Как используются идентификаторы для объявления форматов см. часть 8)
Литерал, или буквальная константа, – символ или слово в языке программирования, определяющие в отличие от переменной свое собственное значение, а не имя другого элемента языка. Буквальные константы тесно связаны с типами данных, представимыми в языке, и являются, собственно говоря, их представителями. В Perl литералами являются числа и строки.
123 # Целое число. 23.56 # Вещественное число с фиксированной точкой. 2Е+6 # Вещественное число с плавающей точкой. "Язык Perl" # Строковый литерал.
(О литералах см. в части 3)
Знаки операций – это один или более специальных символов, определяющих действия, которые должны быть выполнены над величинами, называемыми операндами. Выполняемые действия называются операциями, которые могут быть унарными (применяются к одному операнду), бинарными (применяются к двум операндам) и тернарные (участвуют три операнда).
Пример 2.5. Операции языка Perl.
++$п; # Унарная операция (++) 23 * $п; # Бинарная операция (*) $п >= 3? print "true": print "false"; # Тернарная операция (?:)
(Об операциях и используемых знаках операций см. в части 4)