Posterous theme by Cory Watilo

Filed under: хеш

Perlfuck. Перевод ключей хеша в верхний регистр.

Просматривая одни исходники, нашел такую замечательную функцию:
# Make all hash keys CAPITALsub _cap_hash {        my $self = shift;        my $rhash = shift;        my %hash = map {                my $k = $_;                my $v = $rhash->{$k};                $k =~ tr/a-z/A-Z/;                $k => $v;        } keys(%{$rhash});        return \%hash;}

Вот жжесть :)

Мой вариант:

sub _uc { +{ map { (uc) => $_[1]->{$_} } keys %{$_[1]} } } cross-post

Original post http://sharifulin.livejournal.com/17838.html

Perl. Анонимный хеш vs. пустой блок

Вчера написал функцию, которая должна вернуть ссылку на хеш, причем хеш создается на лету.
По стилистики скрипта return не используется, а в конце каждой строки я всегда ставлю ; (кроме исключительных ситуаций).
Вот что получилось:
sub foo {  ...  {    $hash->{'digest'} ? ('digest'  =>               $hash->{'digest' } ) : (),                         'content' => decode_base64($hash->{'content'})      ,  };}
При вызове такой функции, результатом является список! Блин, Perl это понял как пустой блок :)
В такой ситуции: либо return, либо + перед анонимным хешем решает.

Плюс меня и спас :)
Original post http://sharifulin.livejournal.com/13471.html