• Publicidad

¿La función grep reordena los arrays?

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

¿La función grep reordena los arrays?

Notapor fgalves » 2007-02-08 13:44 @614

Hola a todos,

El caso es que tengo una duda a la que seguramente podreis responder:

Tengo un array @files que contiene una lista ordenada de ficheros pues ha sido obtenida mediante la instrucción "sort".

Sobre dicho array @files, aplico un "grep" con un criterio de selección y guardo el resultado en el mismo @files.
Mi pregunta: se puede garantizar que el resultado obtenido en @files después del grep también estará ordenado, teniendo en cuenta que partía de una lista ya ordenada?
He hecho algunos tests y parece ser que sí, pero quisiera estar seguro.

Muchas gracias!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor kidd » 2007-02-08 14:32 @647

Un array es una lista ordenada, y en sí cuando invocas la función sort() estás reordenando los elementos del array bajo cierta regla.

Cuando usas grep en el array, va a inspeccionar el array por orden, es decir, del primer elemento al último, independientemente de como tengas ordenado el array.

El grep regresa una lista, esta lista se va a ir poblando conforme grep vaya inspeccionando la lista original. Así que técnicamente si tu array lo tienes ordenado alfabeticamente, después de hacer el grep lo vas a tener igual ordenado de esa manera, pero NO porque grep así lo decida, sino porque así tenías tu lista ordenada desde el principio.

Es un poco escueta mi explicación, pero básicamente es así como funciona.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor explorer » 2007-02-08 20:03 @877

Perl suele seguir el principio de la menor posible sorpresa.
Las funciones hacen lo que se espera de ellas, pero no más.

grep, filtra.
sort, ordena.
Última edición por explorer el 2007-02-08 21:14 @926, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kidd » 2007-02-08 20:55 @913

Por eso uno ama a Perl :D
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados