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 :)


Liczba komentarzy: 2

  1. 1 Był Wtorek, 06 maj 2008 roku gdy o godzinie 10:32 przyszedł Zbigniew Lukasiak i stwierdził:

    Tylko, ze ten pierwszy kod nie uzywa wantarray i zawsze zwraca referencje do listy, niezaleznie od kontekstu.

  2. 2 Był Wtorek, 06 maj 2008 roku gdy o godzinie 13:25 przyszedł MySZ i stwierdził:

    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 :)

A Ty? Co o tym myślisz?

Możesz używać w komentarzach następujących znaczników:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Sblam! Antyspam