Автоинкремент и автодекремент

Значения скалярных переменных часто требуется увеличить или уменьшить на 1. Эти операции являются весьма типичными, поэтому для них были созданы сокращения (как и для многих других часто выполняемых операций). Оператор автоинкремента (++) увеличивает скалярную переменную на 1 по аналогии с тем же оператором в C и других языках:

my $bedrock = 42;
$bedrock++; # Увеличить $bedrock на 1; теперь 43
Как и при других способах увеличения переменной на единицу, скалярная переменная создается в случае необходимости:
my @people = qw{ fred barney fred wilma dino barney fred pebbles };
my %count; # новый пустой хеш
$count{$_}++ foreach @people; # новые ключи и значения создаются
# по мере необходимости

При первой итерации цикла foreach значение $count{$_} увеличивается. Таким образом, элемент $count{"fred"} переходит из состояния undef (так как он ранее не существовал в хеше) в состояние 1. При следующей итерации $count{"barney"} становится равным 1; затем $count {"fred"} увеличивается до 2. При каждой итерации один элемент %count увеличивается, а при необходимости создается. После завершения цикла значение $count{"fred"} равно 3. Это позволяет легко и быстро узнать, какие элементы входят в список и сколько раз повторяется каждый из них. Аналогичный оператор автодекремента (--) уменьшает скалярную переменную на 1:

$bedrock--; # уменьшить $bedrock на 1; снова получается 42

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Значение автоинкремента
Значение ускоренного логического оператора
Логические операторы
Метки блоков
Модификаторы выражений