[Moscow.pm] алиасы для ключей хеша

Dmitry Karpich meettya на gmail.com
Пн Ноя 28 04:49:21 PST 2011


On Nov 28, 2011, at 2:13 PM, Alexey Shrub wrote:

> Всем привет,
> 
> возникла у меня мысль что неплохо бы иметь алиасы для ключей хеша -
> связанные данные удобность иметь в хеше/объекте, но когда нужно активно
> использовать конкретные значения писать $hash{key} не очень красиво
> делать my $key = $hash{key} можно, но модифицировать нельзя (а значит
> можно ошибиться), делать my $key = \$hash{key} тоже можно, но тогда
> оперируем не с $key, а с $$key, и символ лишний и опять же можно
> случайно написать $key и не всегда ругнётся.
> Возможно можно через таблицу символов сделать красивые алиасы, но не
> знаю как там хеши хранятся, да и вообще не очень знаю где там могут быть
> подводные камни.
> Нашёл модуль Alias и вот так
> perl -E 'use Alias; my %hash=(key=>"value"); my $s = attr \%hash;say
> $key'
> работает,
> юзал его кто-нибудь, насколько он годен к реальному
> использованию?
> 

Судя по тому, что на 

TravelMate:~ meettya$ uname -a
Darwin TravelMate.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
TravelMate:~ meettya$ perl -v
This is perl 5, version 14, subversion 0 (v5.14.0) built for darwin-2level

cpan[1]> install Alias 

cc -c   -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/opt/local/include -O3   -DVERSION=\"2.32\" -DXS_VERSION=\"2.32\"  "-I/opt/local/lib/perl5/5.14.0/darwin-2level/CORE"   Alias.c
Alias.xs: In function ‘XS_Alias_attr’:
Alias.xs:208: error: lvalue required as unary ‘&’ operand
Alias.xs:209: error: lvalue required as left operand of assignment
make: *** [Alias.o] Error 1

годен условно :)

ИМХО. Это пример ложной лени, потенциально взрывоопасное решение.

Митяй.

> 
> -- 
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org



Подробная информация о списке рассылки Moscow-pm