
Sab Oct 04, 2008 10:20 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4082
Ubicación: Valladolid, España
|
|
|
|
|
La transformada de Schwartz está bien para estos casos...
| Perl: | 1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4 use diagnostics;
5
6 my @foto = qw(
7 2||valle.jpg||tumb_valle.jpg||categoria|| 19|| 09|| 2008
8 2||valle.jpg||tumb_valle.jpg||categoria|| 17|| 09|| 2007
9 2||valle.jpg||tumb_valle.jpg||categoria|| 17|| 11|| 2008
10 2||valle.jpg||tumb_valle.jpg||categoria|| 18|| 09|| 2008
11 );
12
13 print join "\n", @foto, '', '';
14
15 @foto
16 = map { $_-> [3] }
17 sort {
18 $a-> [2] <=> $b-> [2]
19 ||
20 $a-> [1] <=> $b-> [1]
21 ||
22 $a-> [0] <=> $b-> [0]
23 }
24 map { [ (split/\|\|/ )[4.. 6], $_ ] }
25 @foto
26 ;
27
28 print join "\n", @foto, '';
29
30 __END__ |
|
|

Mie Oct 08, 2008 10:29 am
|
 |
salva
Perlero Nuevo

|
Registrado: 03 Ene 2008
Mensajes: 14
|
|
|
|
|
Para ese formato de datos en concreto, donde la fecha aparece al final como DD||MM||YYYY puedes hacerlo así:
| Perl: | my @foto = qw( 2||valle.jpg||tumb_valle.jpg||categoria|| 19|| 09|| 2008
2||valle.jpg||tumb_valle.jpg||categoria|| 17|| 09|| 2007
2||valle.jpg||tumb_valle.jpg||categoria|| 17|| 11|| 2008
2||valle.jpg||tumb_valle.jpg||categoria|| 18|| 09|| 2008
);
@foto = map join('|', reverse split /\|/ ),
sort
map join('|', reverse split /\|/ ), @foto;
print join "\n", @foto, ''; |
|
|
Powered by phpBB © 2001, 2005 phpBB Group
|