2010-02-04 19 views

Odpowiedz

7

Ponieważ skalarne przecinek Perl jest „port” operatora C przecinek, these comments prawdopodobnie apropos:

Raz na jakiś czas, znajdziesz się w sytuacja, w której C oczekuje single wypowiedzi, ale masz dwie rzeczy, które chcesz powiedzieć. Najbardziej powszechny (i w rzeczywistości jedyny popularny) przykład to w pętli for, konkretnie pierwsze i trzecie kontrolujące wyrażenia . Co jeśli (przykładowo) chcesz mieć pętlę, w której liczy się i się z 0 do 10 jednocześnie, że j odlicza od 10 do 0?

Twój instynkt, że jest użyteczny głównie w pętlach for, jest dobry.

3

I czasami używać go w warunkowej (czasami błędnie nazywany „trójskładnikowego”) operatora, jeśli kod jest bardziej czytelny niż zerwania go w prawdziwy if/else:

my $blah = condition() ? do_this(), do_that() : do_the_other_thing(); 

Mógłby również być wykorzystywane w niektórych wypowiedzi którym ostatni wynik jest ważny, tak jak w wyrażeniu grep, ale w tym przypadku jest tak samo, jak gdyby użyto średnik:

my @results = grep { setup(), condition() } @list; 
+0

Czy trójka nie jest operatorem "?:"? :) –

+0

@eugene: to * a * operator potrójny, ale nie można go nazwać * operatorem trójkowym. – Ether