|
Демонстрира
стандартните начини за дефиниране и модифициране на асоциативе масив
(хеш).
Пример 1
Ефект
при използването на функция reverse
и хеш структура в списъчен контекст. Елементите
на хеша се обръщат, разгледани като списък и така ключовете стават
стойности и обратно.
Пример 2
Примерът демонстрира операторите keys, values, exists и delete. Първите два връщат ключовете и съответните им стойности като списъци (като на 0-ия елемент в списъка с ключове отговаря 0-бият елемент в списъка със стойности и т.н. В същия момент наредбата може да се различава при отделни извиквания, но съответствието се запзва). exists връща true, ако съществува елемент със съотвтния ключ, а delete премахва елемент от асоциативен списък.
Пример 3
Демонстрира
правилния подход за проверка на съществуването на даден елемент
в асоциативен списък, както и за изтриването му. Хешовете могат
да съдържат елементи със стойност undef, ето защо
за проверка се използва exists, а не defined
или пряко обръщение към елемента в булеви изрази, тъй като undef
стойности се отчитат като false.
Примерът
показва подхода при проверка дали даден хеш е пълен или не при употребата
му в скаларен контекст. Демонстрира се и начин за намиране броя
на елементите в даден асоциативен масив, чрез разглездане на списъка
генериран от keys в скаларен контекст.
Примерът
има за цел да демонстрира често използван метод за итерация върху
всички елементи на асоциативен масив, като се ползва функцията each.
Тя връща списък с двойка елементи - ключ и съответната стойност.
При преминаване през всички елементи се връща празен списък, което
в скаларен контекст при проверка на булево условие е false и дава
възможност обхождането да стане с while цикъл.
Последният
пример демонстрира изпозлването на хешови отрязъци (slice-ове),
подобни на отрязъците при масивите. Тук отново имаме индексиране
по няколко ключа, като резултата е списък, ето защо пред асоциативните
масиви тук се поставя '@', а не '%'.
|