Cuando es útil operador coma escalar de Perl?
-
18-09-2019 - |
Pregunta
¿Hay alguna razón para utilizar un operador escalar coma en otro lugar que en un bucle for
?
Solución
Desde el escalar coma Perl es un "puerto" del operador C coma, estos comentarios son probablemente a propósito:
Una vez en cuando, usted se encuentra en una situación en la que C espera una sola expresión, pero que tiene dos cosas que quieren decir. la mayor parte común (y, de hecho, el único común) ejemplo es en un bucle
for
, específicamente la primera y tercera de control expresiones. ¿Qué pasa si (por ejemplo) quieren tener un bucle en el que los recuentosi
desde0
a10
, al mismo tiempo que sej
está contando hacia abajo desde10
a0
?
Por lo tanto, su instinto que es principalmente útil en bucles for
es buena, creo.
Otros consejos
Yo lo uso de vez en cuando en condicional (a veces erróneamente llamado "ternario") del operador, si el código es más fácil de leer que romperlo a cabo en un verdadero if / else:
my $blah = condition() ? do_this(), do_that() : do_the_other_thing();
También podría usarse en alguna expresión en el que el último resultado es importante, como en una expresión grep
, pero en este caso es lo mismo que si se utiliza un punto y coma:
my @results = grep { setup(), condition() } @list;