Pergunta

Existe alguma razão para usar um operador escalar vírgula em qualquer lugar diferente em um loop for?

Foi útil?

Solução

Desde o escalar vírgula Perl é uma "porta" do operador C vírgula, esses comentários são, provavelmente, a propósito:

De vez em quando, você se encontra em uma situação em que uma C espera expressão única, mas você tem dois coisas que você quer dizer. A maioria comum (e na verdade o único comum) exemplo é um circuito em for, especificamente o primeiro e terceiro controlador expressões. E se (por exemplo) você querem ter um circuito em que conta i a partir 0 para 10, ao mesmo tempo que j está em contagem regressiva a partir 10 para 0?

Assim, o seu instinto que é útil principalmente em loops for é uma boa, eu acho.

Outras dicas

Eu ocasionalmente usá-lo no (às vezes chamado erroneamente "o ternário") operador condicional, se o código é mais fácil de ler do que quebrá-lo fora em um verdadeiro if / else:

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

Ele também poderia ser usado em alguma expressão, onde o último resultado é importante, como em uma expressão grep, mas neste caso é apenas o mesmo que se foi usado um ponto e vírgula:

my @results = grep { setup(), condition() } @list;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top