Wann ist die Perl-Skalar Komma-Operator nützlich?
-
18-09-2019 - |
Frage
Gibt es einen Grund, einen skalaren Komma-Operator zu verwenden, irgendwo anders als in einer for
Schleife?
Lösung
Da die Perl Skalar Komma ein "Port" des C-Komma-Operator ist, diese Kommentare sind wahrscheinlich apropos:
Von Zeit zu Zeit findet man sich in eine Situation, in der C a erwartet einziger Ausdruck, aber Sie haben zwei Dinge, die Sie sagen wollen. Am meisten gemeinsam (und in der Tat die einzige gemeinsame) Beispiel hierfür ist in einer Schleife
for
, insbesondere die erste und dritte kontrollierende Ausdrücke. Was passiert, wenn (zum Beispiel) Sie will eine Schleife haben, in denen zähleni
up von0
zugleich10
dassj
zählt von10
bis0
?
Also, Ihr Instinkt, dass es in erster Linie nützlich ist in for
Schleifen ist gut, denke ich.
Andere Tipps
ich es gelegentlich verwenden in der bedingten (manchmal fälschlicherweise als „ternären“) Operator, wenn der Code einfacher ist, als zu lesen, es heraus in einen echten Bruch if / else:
my $blah = condition() ? do_this(), do_that() : do_the_other_thing();
Es ist auch in einem gewissen Ausdruck verwendet werden könnte, wo das letzte Ergebnis wichtig ist, wie in einem grep
Ausdruck, aber in diesem Fall ist es genau das gleiche, als ob ein Semikolon verwendet wurde:
my @results = grep { setup(), condition() } @list;