Pregunta

¿Hay alguna razón para utilizar un operador escalar coma en otro lugar que en un bucle for?

¿Fue útil?

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 recuentos i   desde 0 a 10, al mismo tiempo que se   j está contando hacia abajo desde 10 a 0?

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;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top