Автоинкремент и автодекремент
Значения скалярных переменных часто требуется увеличить или уменьшить на 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
Комментарии:
Нету комментариев для вывода...