use strict;
use warnings;
$\="\n";
# Предположим, что имеется некоторый хеш, ключи которого выглядят так:
my %foo = (
'Close|___|your|___|window' => 'Closed',
'Open|___|the|___|door' => 'Opened',
'Just|___|three|___|words' => 'Amazing'
);
# т.е. в имени ключа используется разделитель '|___|'.
# И для того, чтобы не писать весь этот ужас каждый раз в имени ключа,
# перл предоставляет небольшое упрощение для данной задачи.
# К примеру, вместо вот этого:
print $foo{'Open|___|the|___|door'};
print $foo{'Just|___|three|___|words'};
print '-' x 15;
# можно написать вот так:
$; = '|___|'; # в данной ситуации эта волшебная переменная,
# позволяет настраивать разделитель
# для доступа к элементам хеша по ключу.
print $foo{'Open', 'the', 'door'};
print $foo{'Just', 'three', 'words'};
# но можно сделать еще более читабельным наименование ключа:
print $foo{qw/Close your window/};
# Итог, при любом способе, будет предсказуем:
#
# Opened
# Amazing
# ---------------
# Opened
# Amazing
# Closed
четверг, 24 сентября 2015 г.
Упрощаем доступ к хешу по ключу, с использованием $; переменной
Подписаться на:
Комментарии к сообщению (Atom)
Вот ведь жесть-то. Никогда так не делайте.
ОтветитьУдалитьКак говорит документация к этой переменной: Consider using "real" multidimensional arrays as described in perllol.
ОтветитьУдалить