Question

Y at-il raison d'utiliser un opérateur virgule scalaire ailleurs que dans une boucle de for?

Était-ce utile?

La solution

Depuis la virgule scalaire Perl est un "port" de l'opérateur virgule C, ces commentaires sont probablement à propos:

  

Une fois dans un certain temps, vous vous trouvez dans   une situation dans laquelle C prévoit une   seule expression, mais vous avez deux   les choses que vous voulez dire. Le plus   commun (et en fait la seule commune)   exemple se trouve dans une boucle de for, en particulier   la première et la troisième commande   expressions. Que faire si (par exemple), vous   veulent avoir une boucle dans laquelle i compte   à partir 0 à 10 en même temps que   j compte à rebours de 10 à 0?

Alors, votre instinct que c'est surtout utile dans les boucles for est un bon, je pense.

Autres conseils

Je l'utilise de temps en temps dans le conditionnel (parfois appelé à tort « ternaire ») opérateur, si le code est plus facile à lire que le casser en un véritable if / else:

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

Il pourrait également être utilisé dans une expression où le dernier résultat est important, comme dans une expression de grep, mais dans ce cas, il est juste le même que si un point-virgule a été utilisé:

my @results = grep { setup(), condition() } @list;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top