Хэш — это набор пар ключ/значение .
Хэш-переменные в Perl начинаются со знака процента (%).
Доступ к формату элемента хэша: ${key} .
Вот простой пример хеша:
Выполняя вышеуказанную программу, результат вывода:
Существует два способа создания хэша:
$data{'google'} = 'google.com';$data{'codercto'} = 'codercto.com';$data{'taobao'} = 'taobao.com';
Первый элемент в списке является ключевым, а второй элемент — значением.
%data = ('google', 'google.com', 'codercto', 'codercto.com', 'taobao', 'taobao.com');
Вы также можете использовать символ => для установки ключа/значения:
%data = ('google'=>'google.com', 'codercto'=>'codercto.com', 'taobao'=>'taobao.com');
Следующий пример представляет собой вариант приведенного выше примера, в котором вместо кавычек используется - :
%data = (-google=>'google.com', -codercto=>'codercto.com', -taobao=>'taobao.com');
Таким образом, в ключе не могут появляться пробелы. Способ чтения элементов:
$val = $data{-google}$val = $data{-codercto}
Формат элемента хэша доступа: ${key} , пример следующий:
Выполняя вышеуказанную программу, результат вывода:
Извлекать значения из хеша можно так же, как из массива.
Хэш-значение извлекается в формат синтаксиса массива: @{key1,key2} .
Выполняя вышеуказанную программу, результат вывода:
Массив: 45 40
Мы можем использовать функцию ключей для чтения всех ключей хеша. Синтаксис следующий:
ключи %HASH
Эта функция возвращает массив всех ключей для всех хешей.
Выполняя вышеуказанную программу, результат вывода:
таобаоgooglecodercto
Аналогичным образом мы можем использовать функцию значений для чтения всех значений хеша. Формат синтаксиса следующий:
значения %HASH
Эта функция возвращает массив всех значений для всех хешей.
Выполняя вышеуказанную программу, результат вывода:
taobao.comcodercto.comgoogle.com
Если вы прочитаете пару ключ/значение, которой нет в хеше, будет возвращено неопределенное значение и во время выполнения появится предупреждение.
Чтобы избежать этой ситуации, мы можем использовать функцию существования , чтобы определить, существует ли ключ, и прочитать его, когда он существует:
Выполняя вышеуказанную программу, результат вывода:
Ключ Facebook не существует
В приведенном выше коде мы использовали оператор IF...ELSE , который мы подробно рассмотрим в следующих главах.
Размер хеша — это количество элементов. Мы можем получить размер хеша, сначала получив все элементы массива ключа или значения, а затем вычислив количество элементов массива. Пример следующий:
Выполняя вышеуказанную программу, результат вывода:
1 - Размер хеша: 32 - Размер хеша: 3
Добавление пар ключ/значение можно выполнить с помощью простого присваивания. Но чтобы удалить элемент хеша, вам нужно использовать функцию удаления :
Выполняя вышеуказанную программу, результат вывода:
1 - размер хеша: 32 - размер хеша: 43 - размер хеша: 3