Dziś będzie po perlowemu.
Ten kod:
if (@_) {
if (@_ == 1) {
return $$CONFIG{$_[0]};
} else {
my $ret;
push(@$ret, $$CONFIG{$_}) foreach (@_);
return $ret;
}
} else {
return $CONFIG;
}
I ten kod:
return $CONFIG unless @_;
return $$CONFIG{$_[0]} if (@_ == 1);
my @ret = @$CONFIG{@_};
return wantarray ? @ret : \@ret;
Robią dokładnie to samo, choć dla niewprawnego oka linijka my @ret = @$CONFIG{@_}; może być nieco myląca :)
Tylko, ze ten pierwszy kod nie uzywa wantarray i zawsze zwraca referencje do listy, niezaleznie od kontekstu.
Adres bezpośredni: http://urzenia.net/309/ladny-kod-brzydki-kod/#comment-33339
Racja, ale to w sumie gadżet, i łatwo to zmienić :) Bardziej chodziło o brak pushowania, zagnieżdżania ifów i ogólną czytelność - choć jak napisałem w ostatniej linijce, czytelność może być kiepska dla osoby nieobeznanej z perlowymi zapisami :)
Adres bezpośredni: http://urzenia.net/309/ladny-kod-brzydki-kod/#comment-33340