Perl - Problema Ordenar Array Perl

   
Vista:

Problema Ordenar Array Perl

Publicado por Gorka (5 intervenciones) el 27/02/2009 18:25:35
¿Cómo puedo ordenar el array de Perl siguiente ...

15 120 B
10 15 A
15 110 D
110 7000 C
110 6000 I
111 6001 H

... de forma que me quede ordenado primero por la columna 1 y luego por la columna 2, es decir, ...

10 15 A
15 110 D
15 120 B
110 6000 I
110 7000 C
111 6001 H

? Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema Ordenar Array Perl

Publicado por Joaquin Ferrero (4 intervenciones) el 16/04/2009 10:21:23
Con el módulo Sort::Naturally lo tienes solucionado en una línea:

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

use Sort::Naturally;

my @array = (
'15 120 B',
'10 15 A',
'15 110 D',
'110 7000 C',
'110 6000 I',
'111 6001 H',
);

@array = nsort @array;

print join " ", @array;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema Ordenar Array Perl

Publicado por Raul (1 intervención) el 18/03/2011 21:23:14
He revisado el módulo Sort::Naturally pero no he encontrado lo que estoy necesitando.

¿Podría ordenarse este array únicamente por los valores de la primera columna?

my @array(
'26 0.948195 -15.1',
'44 7.996 -15.4',
'46 0.058369 -21.6',
'46 4.77151177263143 -6.02857142857143',
'131 6.34708918511 -2.0',
'165 0.915672 -15.4',
'44 166.00 -18.62',
);

Al emplear Sort::Naturally no sé como evitar que me ordene teniendo en cuenta la segunda columna. como veis, el último valor aunque empieza por 44 lo coloca en último lugar por se el siguiente valor 166

¿Alguien tiene alguna idea?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar