Estoy leyendo el libro "A partir de Perl", y da estas dos afirmaciones:Lista Precedencia de operadores en Perl
print "Test one: ", 6 > 3 && 3 > 4, "\n";
print "Test two: ", 6 > 3 and 3 > 4, "\n";
La primera línea se imprime nada con una nueva línea, la segunda línea imprime un 1 con no hay una nueva línea
Estoy confundido acerca de la salida. Según el autor, la segunda sentencia da salida raro porque es como decir:
print ("Test two: ", 6 > 3) and 3 > 4, "\n";
Sin embargo, ¿por qué es la primera declaración no es lo mismo? Pensé que tenía algo que ver con la precedencia de la impresión. El & & tiene mayor prioridad que la impresión, por lo que se evalúa primero y luego se imprime. Mientras que el "y" tiene una prioridad menor que la impresión, entonces 6> 3 se imprimirá, la impresión devuelve un 1, y luego se evalúa con el "y". Sin embargo, esto realmente no tiene sentido.
He leído la documentación de Perl sobre cómo funciona la precedencia para los operadores de listas, pero todavía no entiendo este ejemplo. ¿Pueden ustedes diseccionar las dos declaraciones y decirme qué se imprime primero? ¿Puede explicar también qué significa la documentación de Perl cuando menciona que los operadores de listas son "izquierdos" y "derechos"? Gracias.
Muchas gracias a todos por sus respuestas. Lo entiendo ahora De hecho, estaba haciendo lo que cjm dijo y pensando que hay operadores de listas hacia la izquierda y hacia la derecha. Entonces, ahora que entiendo lo que significa, lo entiendo todo.
Este código imprime advertencias. y tiene un comportamiento aún más funesto en Devel :: REPL – xenoterracide
@xenoterracide, no pretende ser un buen código Perl. Solo trata de ilustrar cómo funciona la precedencia. – cjm
@cjm correcto ... aunque el comportamiento de re.pl me pareció lo suficientemente malo como para que yo le presente un error. veremos qué viene de eso. – xenoterracide