El Bloque de Comparación

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
2011-04-15