Простые операторы
Простой оператор представ
Perl является императивным языком
программирования: его программа состоит из последовательности операторов, определяющих
некоторые действия. Оператор — это завершенная инструкция интерпретатору
на выполнение определенного действия. Все операторы языка Perl делятся на простые
и составные. Простой оператор представляет собой выражение, возможно, снабженное
модификатором. Составной оператор определяется в терминах блоков.
Каждый оператор Perl имеет возвращаемое
значение. Для простого оператора — это значение вычисляемого в нем выражения,
для составного оператора — значение последнего вычисленного в нем оператора.
Операторы обрабатываются в той последовательности,
в которой они встречаются в программе. Однако среди множества допустимых операторов
языка Perl, есть группа операторов, которая изменяет последовательность выполнения
операторов в программе.
ляет собой любое выражение, завершенное
точкой с запятой ";". Символ точка с запятой обязателен. Он может
отсутствовать, только если простой оператор является последним оператором в
блоке, специальной синтаксической конструкции, о которой мы поговорим чуть-чуть
позже.
Основное назначение простого оператора
— вычисление выражения с побочным эффектом, который связан с изменением значения
некоторых переменных в выражении при его вычислении. Обычно он реализуется операциями
увеличения/уменьшения на единицу (++, --):
$п++; # Переменная $п увеличивается на единицу. —$п**2; # Переменная $п уменьшается
на единицу.
Никакие другие операции Perl не вызывают побочных эффектов в выражении, если
не считать операции присваивания (простое и составное), результатом вычисления
которой является изменение значения левого операнда. Вызовы функций также могут
приводить к побочным эффектам, но об этом подробнее мы расскажем в главе
11.
Простой оператор Perl может содержать выражение и без побочного эффекта. Все
равно он будет рассматриваться интерпретатором как допустимый оператор, не выполняющий
никакого действия, а только вычисляющий значение выражения. Однако если установлен
флаг (-w) отображения интерпретатором предупреждающих сообщений, то будет получено
сообщение о бесполезности использования соответствующей операции в void-контексте.
Например, при выполнении оператора
($n*$m)**4 + 6;
будет отображено сообщение
Useless use of addition in void context at D:\PERL\EXAMPLE3.PL line 4.
Отметим, что в сообщении упоминается о последней выполненной операции в выражении.
Замечание
Подобное сообщение будет отображаться,
даже если в сложном выражении присутствует операция, вызывающая побочный эффект.
Сообщение не отображается только в случае выражения, составленного из одних
операций уменьшения /увеличения, или выражения присваивания.
Читатель спросит, какой прок в
операторе, не выполняющем никакого действия. Его можно использовать для задания
возвращаемого пользовательской функцией значения. Забегая вперед, скажем, что
если в функции явно не указано в операторе return о возвращаемое значение, то
по умолчанию Perl считает таковым значение последнего вычисленного оператора.
Именно это обстоятельство и используется многими программистами для определения
возвращаемого значения:
sub raySub {
какие-то операторы condition == true ? "Успех" : "Провал";
# Последний оператор * '
Последний оператор функции mysub вычисляет операцию выбора, в которой второй
и третий операнды представлены просто строковыми литералами — выражениями без
побочного эффекта. Результат вычисления одного из них и является возвращаемым
значением функции.
Начало |