|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Sergey E.Sumin 2:5025/17 28 Feb 2003 15:08:10 To : All Subject : Re: Hashes as keys -------------------------------------------------------------------------------- > my $hash1 = { > { 'name' => 'ivanov', > 'mail' => 'ivan@mmm.com', > } => 1, > { 'name' => 'petrov', > 'mail' => 'petr@mmm.com', > } => 2, > }; Здесь перл делает преобразование хеша в строку. Получается то же, что my $hash1 = {'HASH(0x15d2508)'=>1, 'HASH(0x15d25ec)'=>2}; > > my $hash2 = { 'name' => 'petrov', > 'mail' => 'petr@mmm.com' > }; Здесь получается хеш, который, если его преобразовать в скаляр, будет выглядеть как 'HASH(0x15d2508)', поскольку первый анонимный хеш из $hash1 уже выкинули за ненадобностью. Вот и получается.... > > Hадо: > вытащить из $hash1 значение с ключем $hash2, > или проверить наличие оного exists-ом. > Реально ли такое чудо? Чудеса бывают только на первых месяцах знакомства с перлом. Потом начинаешь его понимать... > > Пробовал "tie %$hash1, 'Tie::RefHash'" - наверное, не так пробовал: > > $hash1->{$hash2} всегда получается =1, > $hash1->{%$hash2} - всегда =undef, > а exists - всегда exists. > > То ли лыжи не едут, то ли я ....???? > > Спасибо. Константин > Sergey E.Sumin --- Microsoft Outlook Express 6.00.2600.0000 * Origin: RELEX Inc. (2:5025/17@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/775369a7bc76.html, оценка из 5, голосов 10
|