La función sort() en Perl se usa para ordenar una lista con o sin el uso del método de clasificación. Este método puede ser especificado por el usuario en forma de subrutinas o bloques. Si no se especifica una subrutina o un bloque, seguirá el método de clasificación predeterminado.
Sintaxis:
ordenar Lista
ordenar bloque, Lista
ordenar Subrutina, ListarDevoluciones: lista ordenada según los requisitos del usuario
Ejemplo 1:
#!/usr/bin/perl @array1 = ("a", "d", "h", "e", "b"); print "Original Array: @array1\n"; print ("Sorted Array: ", sort(@array1));
Producción:
Original Array: a d h e b Sorted Array: abdeh
Ejemplo 2: Uso de Block para ordenar
#!/usr/bin/perl -w use warnings; use strict; # Use of Block to sort my @numeric = sort { $a <=> $b } (2, 11, 54, 6, 35, 87); print "@numeric\n";
Producción:
2 6 11 35 54 87
En el código anterior, el bloque se usa para ordenar porque la función sort() usa caracteres para ordenar las strings, pero en un contexto numérico, no es posible seguir el mismo. Por lo tanto, el bloque se usa para facilitar la clasificación.
Ejemplo 3: uso de subrutina para ordenar
#!/usr/bin/perl -w use warnings; use strict; # Calling subroutine to sort numerical array my @numerical = sort compare_sort (2, 11, 54, 6, 35, 87); print "@numerical\n"; # function to compare two numbers sub compare_sort { if($a < $b) { return -1; } elsif($a == $b) { return 0; } else { return 1; } }
Producción:
2 6 11 35 54 87