|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Anatoly Moskovsky 2:5020/400 11 Oct 2002 15:52:37 To : Andrey Sapozhnikov Subject : Re: hash: автосоздание не существующих ключей -------------------------------------------------------------------------------- Hi! *** Andrey Sapozhnikov wrote to Anatoly Moskovsky: AS> Да можно вообще прозрачно сделать, чтоб любое обращение вызывало AS> создание элемента хэша. Вот только нафига? Мне кажется кто-то опять AS> недочитал доку по Перлу и мудрит нечто бессмысленное, поскольку AS> реальная надобность в подобном коде очень маловероятна. Hу, возможно, ты прав. Приведу то, зачем мне это . our %vars = (aaa => 111); #это делается по многу раз в разных частях программы. my $text = "...$(aaa)... $(bbb)..."; $text =~ s!\$\(([.\w]+)\)!$vars{$1}=$vars{$1}!gse; # теперь проверка на наличие ссылок на несуществующие ключи my @uvars = sort grep {!defined $vars{$_}} keys %vars; if (@uvars) { printf "Undefined vars: %s\n", join ", ", @uvars; } Hе спорю, это можно сделать и кучей других способов (например отдельный глобальный хеш для накопления таких ключей), но мне так показалось удобнее. И если бы не "$vars{$1}=$vars{$1}" так вообще бы все было здорово :) И вообще нельзя ограничивать фантазию какими-то штампами :) Bye --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/64815476da5a.html, оценка из 5, голосов 10
|