Первый сайт на Perl



              

Операции присваивания - часть 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;

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

$b = 1;  
$а = ($Ь +=3); # Результат: $а = $b = 4
$а += ($Ь += 3); # Результат: $а = $а+$b+3
( ($а += 2) **= 2) -= 1; # Результат: $а = ($а+2)**2-1

  Замечание

При использовании операции присваивания (простой или составной) в качестве левого операнда другой операции присваивания обязательно ее заключение в круглые скобки. Иначе может сгенерироваться синтаксическая ошибка, или выражение будет интерпретировано не так, как задумывалось. При наличии нескольких операций присваивания в одном выражении без скобок интерпретатор peri начинает его разбор справа. Например, если последнее выражение примера 4.11 записать без скобок

$а += 2 **= 2 -•= 1;

то при его синтаксическом анализе интерпретатор сначала выделит операцию присваивания

2 -= 1;

и сообщит об ошибке, так как ее синтаксис ошибочен (левый операнд не является переменной или элементом массива).




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