Создание серверных приложений на языке PERL

Урок 25. Функции для работы




Урок 25. Функции для работы с хешами

Функция Delete

delete выражение;

Удалить значение из хеша. Возвращает удаляемое значение или неопределенность, если ничего не удаляется. Удаление из массива окружения $ENV{} - изменяет окружение. Удаление из хеша связанного с базой данных - удаляет запись в базе данных.

#!/usr/bin/perl #programm 19 print "Content-Type: text/html\n\n";

%c=( 'Windows 98' => '1998', 'Windows 2000' => '1999', 'Windows XP' => '2001' );

$flag=1;

delete $c{'Windows XP'};

@array=%c; print "
\n"; foreach $i(@array){ if($flag==1){$flag=0; print ""; }else{$flag=1; print "\n" }} print "
$i$i
";

Функция Each

each хеш;

Возвращает 2-элементный массив. Первый элемент - ключ второй - значение следующего элемента хеша. Позволяет "просматривать" все значения хеша в определенном порядке. Сброс переменной цикла происходит только после прохождения всего массива. Код ниже выводит все пары ключ-значение из хэша:

%c=( 'Windows 98' => '1998', 'Windows 2000' => '1999', 'Windows XP' => '2001' );

while(($key,$value) = each %c){ print "$key => $value
\n"; };

Функция Exists

exists выражение;

Возвращает true, если существует указанный ключ хеша, даже если не определено его значение.

%hash=( 'Windows 98' => '1998', 'Windows 2000' => '1999', 'Windows XP' => '2001' );

if(exists($hash{"Windows 98"})){ print "Элемент найден"; }else{ print "Элемент не найден"; }

Функция Keys

keys хеш;

Возвращает массив всех ключей хеша. В скалярном контексте - количество ключей. Порядок следования ключей аналогичен порядку в each функции. Следующий код выводит все ключи хэша:

%hash=( 'Windows 98' => '1998', 'Windows 2000' => '1999', 'Windows XP' => '2001' );

foreach $k (keys %hash){ print "$k
";}

Функция Values

values хеш;

Возвращает обычный массив со всеми значениями хеша. В скалярном контексте возвращает количество значений хеша.



%hash=( 'Windows 98' => '1998', 'Windows 2000' => '1999', 'Windows XP' => '2001' );

foreach $k (values %hash){ print "$k
"; }

* * * *

[Содержание]  [Вступление]  [ необходимое для начала изучения]  [урок 1]  [урок 2]  [урок 3]  [урок 4]  [урок 5]  [урок 6]  [урок 7]  [урок 8]  [урок 9]  [урок 10]  [урок 11]  [урок 12]  [урок 13]  [урок 14]  [урок 15]  [урок 16]  [урок 17]  [урок 18]  [урок 19]  [урок 20]  [урок 21]  [урок 22]  [урок 23]  [урок 24]  [урок 25]  [урок 26]  [урок 27]  [урок 28]  [правила хорошего тона]  [приложение A]  [приложение Б]  [приложение В]  [заключение]  [благодарности] 



Copyright (c) ClericICN, 2002

Содержание раздела