Vie Sep 12, 2008 8:53 am
|
 |
luisbal
Perlero Nuevo

|
Registrado: 12 Sep 2008
Mensajes: 5
|
|
| Problema de ordenar y comparar |
|
|
Estimados amigos: llevo mucho tiempo tratando de encontrar una solución que supongo será sencilla para ustedes.
La idea es esta: la base de datos de mi carrito (flat database) carga productos, precios, etc. pero además un número (1,2,3,4) dependiendo de la disponibilidad. 1 es 24 horas, 2, 48 horas, 3, 72 horas, etc. La idea es que el script lea la data y me diga el número mayor.
Además mi data tiene dos tipos de separaciones: %% separa los ítem y | separa los datos del producto:
id_1|prod_1|precio_1|disponi_1%%id_2|prod_2|precio_2|disponi_2%%id_3|prod_3|disponi_3
Ejemplo:
L1|libro A|23.00|3%%L2|libro B|14.00|3%%L5|libro C|19.00|2
En este caso, el producto de mayor disponibilidad sería el libro B, porque su disponibilidad es 3. Entonces, quiero que el script me dé este resultado 3.
Creo que hay que abrir la data luego usar sort y luego <=>. Les agradeceré me pudieran dar una solución para copiar y pegar en mi script general. MUCHAS GRACIAS. |
|
|
|

Vie Sep 12, 2008 10:18 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4239
Ubicación: Valladolid, España
|
|
|
|
|
Bienvenido a los foros de Perl en Español, luisbal.
Esta es una de las múltiples soluciones:
| Perl: | #!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my $maxima_disponibilidad = - 1;
my $libreria = 'L1|libro A|23.00|3%%L2|libro B|14.00|3%%L5|libro C|19.00|2';
my @libros = split '%%', $libreria;
for (@libros) {
my (undef,undef, undef, $disponibilidad) = split '\|';
$maxima_disponibilidad = $disponibilidad
if $maxima_disponibilidad < $disponibilidad;
}
print "Disponibilidad: $maxima_disponibilidad\n";
__END__ |
|
|
Lun Sep 15, 2008 7:26 pm
|
 |
luisbal
Perlero Nuevo

|
Registrado: 12 Sep 2008
Mensajes: 5
|
|
| muchas gracias |
|
|
Estimados amigos:
Muchas gracias. Al fin he podido resolver este problema gracias a la generosa ayuda de ambos. Agradezco sobre todo la rapidez en las respuestas. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|