Шаг 92.
Выражения. Термы

    На этом шаге мы рассмотрим понятие "терм".

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

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

    В действительности в Perl отсутствуют истинные функции, понимаемые в смысле, например, языка С, в котором регламентировано обращение в программе к функции указанием ее имени с параметрами, заданными в круглых скобках. По существу, "функции" языка Perl являются списковыми и унарными именованными операциями, ведущими себя как функции, так как синтаксис языка позволяет заключать их параметры в круглые скобки. Вызывая в программе функцию (с заключенными или не заключенными в скобки параметрами), мы выполняем операцию (списковую или унарную именованную). Причем следует иметь в виду, что коль скоро выполняется операция, то она не только выполняет предписанные ей действия, но и возвращает определенный результат, который используется при вычислении выражения. Например, функция print возвращает Истину, если ее вывод завершен успешно, и Ложь в противном случае. Что напечатается при вычислении следующей операции?

   print print "0";
Ответ - строка 01, так как первая операция print должна напечатать результат вычисления второй операции print, которая успешно выводит на экран монитора 0. Следовательно, ее результат Истина, а она представляется числом 1.

    При синтаксическом разборе выражений и операторов как термы рассматриваются конструкции do{} и eval{}, вызовы подпрограмм и методов объектов, анонимные конструкторы массивов скаляров [] и хешей {}, а также все операции ввода/вывода.

    На следующем шаге мы приведем приоритет операций.




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