Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Некоторые заметки по языку программирования perl


Служба Рассылок Subscribe.Ru

Всем привет! Сегодняшний выпуск - описание различных видов объявлений хеша.

Хэш - ассоциативный массив, т.к. доступ к данным осуществляется при помощи ключа,
ассоциированного со значением.

Хэши начинаются с префикса %: %hash. Для работы с с хэш-массивами нужно, как
и в обычных массивах, использовать разыменовывающий префикс $: $hash{шляпа} =
серая;

Хэш можно определить несколькими способами:
%hash = (
        'шляпа' => 'серая',
        'водка' => 'горькая',
        'вобла' => 'вкусная',
        'штаны' => 'широкие',
        'пиво' => 'темное',
        'игрушка' => 'любимая');

%hash = (); #можно не указывать пустой хеш для создания массива, perl может сам
создавать пустой хэш.
$hash{'шляпа'} = 'серая';
$hash{'водка'} = 'горькая';
$hash{'вобла'} = 'вкусная';
$hash{'штаны'} = 'широкие';
$hash{'пиво'} = 'темное';
$hash{'игрушка'} = 'любимая';

Если используется пробел при определении элемента хэша, то этот пробел лучше
поставить в одинарные кавычки $hash{'дырявая шляпа'} = серая;

Добавить элементы в хеш можно так:
%hash = (
        'шляпа' => 'серая',
        'водка' => 'горькая',
        'вобла' => 'вкусная');
%hash = (%hash, 'кошка', 'мягкая');
foreach $k (keys %hash){
print "$k = $hash{$k}\n";
}
и так:
%hash = (
        'шляпа' => 'серая',
        'водка' => 'горькая',
        'вобла' => 'вкусная');
$hash{"дом"} = "большой";
$hash{"дым"} = "сизый";
foreach $k (keys %hash){
print "$k = $hash{$k}\n";
}
и еще например так:

my %Years = (
      1999 => "golos1999.html",
      2000 => "golos2000.html",
      2001 => "golos2001.html",
    map{$_ => "golos$_.html"}(2002..2032)
            );

т.е. если есть файлы, которые группируются по годам, дням, месяцам или еще как,
то дабы не переписывать скрипт, можно сказать map { $_ => "golos$_.html" } (2002..2032)
где год или неделя берется из какой-нибудь переменной, в данном случае из $_.

Ждите следующего выпуска!

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
Рейтингуется SpyLog

В избранное