Иллюстрированный самоучитель по Perl




Операции присваивания - часть 2


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

$varl = $var2 = $varl[0] =34;

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

$а = $а+3;

Однако, язык Perl предлагает более эффективный способ решения подобных проблем, предоставляя в распоряжение программиста бинарную операцию составного присваивания +=, которая прибавляет к значению левого операнда, представляющего правильное lvalue, значение правого операнда и результат присваивает переменной, представленной левым операндом. Таким образом, оператор составного присваивания

$а += 3; I Результат: $а = $а+3

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

Для всех бинарных операций языка Perl существуют соответствующие составные операции присваивания. Все они, вместе с примерами их использования, собраны в табл. 4.2.


Таблица 4.2. Составные операции присваивания

Операция Пример Эквивалент с операцией простого присваивания
**= $а **= 3; $а = $а ** 3;
+= $а += 3; $а = $а + 3;
-= $а -= 3; $а = $а - 3;
.= $а .= "а"; $а = $а . "а";
*= $а *= 3; $а = $а * 3;
/= $а /= 3; $а = $а / 3;
%= $а %= 3; $а = $а % 3;
х= $а х= 3; $а = $а х 3;
&= $а &= $b; $а = $а & $b;
|= $а |= 3; $а = $а | 3;
^= $а ^= 3; $а = $а ^ 3;
«= $а «= 3; $а = $а « 3;
»= $а »= 3; $а = $а » 3;
&&=    
||= $а ||= $b == 0; $а = $а || $b == 0;
<


Содержание  Назад  Вперед