#3691 | From: | Gennadij Pastuhov |
To: | All |
Date: | 28-01-2019 16:17:13 |
Subj: | +key => +value |
Рад всех приветствовать! А особенно - All!
Иногда встречаю в коде выражения вида:
{
-key => "value",
}
или
{
response => '+response',
}
В доке что-то не могу найти, как это понимать. Помогите, плз!
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: ... са. Это ориджин Мёбиуса. Это ориджин Мёбиу ... (2:5036/26)
SEEN-BY: 5020/1042 5036/26 6090/1
PATH: 5036/26 5020/1042 6090/1
#3692 | From: | Gennadij Pastuhov |
To: | All |
Date: | 28-01-2019 16:44:08 |
Subj: | +key => +value |
Рад всех приветствовать! А особенно - All!
Иногда встречаю в коде выражения вида:
{
-key => "value",
}
upd:
или
{
response => '+response',
}
С этим разобрался, просто строка :) А вот минус в ключе - пока загадка.
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: ... са. Это ориджин Мёбиуса. Это ориджин Мёбиу ... (2:5036/26)
SEEN-BY: 5020/1042 5036/26 6090/1
PATH: 5036/26 5020/1042 6090/1
#3693 | From: | Eugene Grosbein |
To: | Gennadij Pastuhov |
Date: | 28-01-2019 23:12:02 |
Subj: | Re: +key => +value |
28 янв. 2019, понедельник, в 16:44 NOVT, Gennadij Pastuhov написал(а):
GP> Иногда встречаю в коде выражения вида:
GP> {
GP> -key => "value",
GP> }
GP> upd:
GP> или
GP> {
GP> response => '+response',
GP> }
GP> С этим разобрался, просто строка :) А вот минус в ключе - пока загадка.
Дефис это просто часть строки. То есть, если ты используешь -key
при задании значений, то и выбирать значения тоже должен так же:
$hash{'-key'}
Дефис тут ничем не отличается от букв k, e, y.
Eugene
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)
SEEN-BY: 5006/1 5020/1042 5080/102 6090/1
PATH: 5006/1 5080/102 5020/1042 6090/1
#3694 | From: | Gennadij Pastuhov |
To: | All |
Date: | 30-01-2019 16:33:26 |
Subj: | hash, продолжение |
Рад всех приветствовать! А особенно - All!
Встретил сегодня такую конструкцию:
my $handler = {
owner_changed => 'process_owner_changed',
changed => 'process_changed',
created => 'process_created',
}->{$event};
Здесь что, внутренний массив является ключом хэша?
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: Тяжело в лечении - легко в гробу (2:5036/26)
SEEN-BY: 5020/1042 5036/26 6090/1
PATH: 5036/26 5020/1042 6090/1
#3695 | From: | Eugene Grosbein |
To: | Gennadij Pastuhov |
Date: | 30-01-2019 21:08:08 |
Subj: | Re: hash, продолжение |
30 янв. 2019, среда, в 16:33 NOVT, Gennadij Pastuhov написал(а):
GP> Встретил сегодня такую конструкцию:
GP> my $handler = {
GP> owner_changed => 'process_owner_changed',
GP> changed => 'process_changed',
GP> created => 'process_created',
GP> }->{$event};
GP> Здесь что, внутренний массив является ключом хэша?
Hет. Фигурные скобки означают определение ссылки на анонимный хеш.
Оператор -> в данном случае означает выборку значения из этого
анонимного хеша по ссылке на него и по ключу $event.
То есть, это краткая запись такой конструкции:
my $handler;
if ($event eq 'owner_changed') { $handler = 'process_owner_changed'; }
elsif ($event eq 'changed') { $handler = 'process_changed'; }
elsif ($event eq 'created') { $handler = 'process_created'; }
Eugene
--
Все любят естественный наркотик
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)
SEEN-BY: 5006/1 5020/1042 5080/102 6090/1
PATH: 5006/1 5080/102 5020/1042 6090/1
#3696 | From: | Gennadij Pastuhov |
To: | Eugene Grosbein |
Date: | 30-01-2019 18:30:00 |
Subj: | hash, продолжение |
Рад всех приветствовать! А особенно - Eugene!
Среда января 30 19 21:08 Eugene Grosbein писал к Gennadij Pastuhov:
EG> Оператор -> в данном случае означает выборку значения из этого
EG> анонимного хеша
Огромное спасибо!
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: Топ - топ - топ - топ. Чёрные лапки!!!! (2:5036/26)
SEEN-BY: 5020/1042 5036/26 6090/1
PATH: 5036/26 5020/1042 6090/1
#3697 | From: | Gennadij Pastuhov |
To: | All |
Date: | 13-02-2019 11:04:23 |
Subj: | perl strings & Encode::encode |
Рад всех приветствовать! А особенно - All!
Поясните, плз, видимо, я чего-то не до конца понимаю.
my $str = "некая строка";
В $str имеем строку во внутреннем перловом формате. Соответственно, все языковые средства должны работать с ней корректно. Но строка имеет "старую" однобайтовую кодировку.
use utf8;
my $str = "некая строка";
$str опять во внутреннем формате, но может содержать уникодные символы. Все языковые средства опять должны работать корректно?
my $str = Encode::encode_utf8("некая строка");
Теперь $str хранит строку с BOM, каждый символ закодирован уникодными кодовыми позициями? И языковые средства тут хз как отработают?
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: Чёрнaя дырa - труднодоступнaя aфрикaнскaя провинция (2:5036/26)
SEEN-BY: 5020/1042 5036/26 6090/1
PATH: 5036/26 5020/1042 6090/1
#3698 | From: | Eugene Grosbein |
To: | Gennadij Pastuhov |
Date: | 13-02-2019 15:51:00 |
Subj: | Re: perl strings & Encode::encode |
13 февр. 2019, среда, в 11:04 NOVT, Gennadij Pastuhov написал(а):
GP> Поясните, плз, видимо, я чего-то не до конца понимаю.
GP> my $str = "некая строка";
GP> В $str имеем строку во внутреннем перловом формате. Соответственно, все
GP> языковые средства должны работать с ней корректно. Hо строка имеет "старую"
GP> однобайтовую кодировку.
Понятие "однобайтная кодировка" неприменимо к внутреннему перловому
представлению данных (включая строковые). Это термин для "внешних"
источников данных по отношению к внутренней перловой кухне,
причём к "внешним источникам" относится и сам текст перлового кода,
который обрабатывается интерпретатором.
GP> use utf8;
GP> my $str = "некая строка";
GP> $str опять во внутреннем формате, но может содержать уникодные символы. Все
GP> языковые средства опять должны работать корректно?
После use utf8 интерпретатор при обработке текста программы предполагает
и допускает использование utf8 и конвертирует встреченный utf8
в своё внутреннее представление соответственно. Если utf8 изначально
корректный, то да - средства должны работать корректно.
GP> my $str = Encode::encode_utf8("некая строка");
GP> Теперь $str хранит строку с BOM, каждый символ закодирован уникодными кодовыми
GP> позициями? И языковые средства тут хз как отработают?
Encode::encode_utf8 просто конвертор из внутреннего перловского
представления данных во "внешнюю" кодировку utf8, $str тут
предназначается, например, для записи в html или текстовый документ или
выдачи в терминал, который настроен для работы с utf8, или для отправки
в сетевой сокет строки в формате utf8 и так далее - в общем,
для работы с "внешним миром", а не для продолжения
использования $str как текстовой перловской переменной - для
этого её придётся сначала конвертировать обратно во внутреннее
перловское представление.
Сам литерал "некая строка" неявно конвертируется во внутренне
перловское представление для строк интерпретатором перед
началом работы скрипта.
Eugene
--
What would you do with a brain if you had one?
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)
SEEN-BY: 5006/1 5020/1042 5080/102 6090/1
PATH: 5006/1 5080/102 5020/1042 6090/1
#3699 | From: | Gennadij Pastuhov |
To: | Eugene Grosbein |
Date: | 13-02-2019 12:10:07 |
Subj: | perl strings & Encode::encode |
Рад всех приветствовать! А особенно - Eugene!
Среда февраля 13 19 15:51 Eugene Grosbein писал к Gennadij Pastuhov:
EG> Eugene
[ сожрали демоны ]
Огромное спасибо!
... Jonny wanna live
--- GoldED+/W32 1.1.5-041013 xenofont.chat.ru skype pastuhovgena
* Origin: Кто хочет быть счастлив - тот и будь! (с) Лоренцо Медичи (2:5036/26)
SEEN-BY: 5020/1042 5036/26 6090/1
PATH: 5036/26 5020/1042 6090/1