La función sort
admite como primer argumento un bloque que determina la función de comparación.
Dicho bloque depende de dos variables ''especiales'' a y b .
El valor retornado por un bloque es el valor asociado con la última sentencia del bloque.
En este caso sort
espera que el bloque
devuelva -1, 0 ó 1. Dicho valor es utilizado como elemento de comparación.
Por ejemplo:
lhp@nereida:~/Lperl/src$ perl -dwe 0 main::(-e:1): 0 DB<1> @a = (4, 7, 9, 12, -1) DB<2> p 4 <=> 7 -1 DB<3> p 9 <=> 2 1 DB<4> p 13 <=> 12+1 0 DB<5> @a = sort { $a <=> $b } @a; DB<6> p "@a" -1 4 7 9 12 DB<7> @a = sort { $b <=> $a } @a; DB<8> p "@a" 12 9 7 4 -1
Casiano Rodríguez León