Problemas con un opendir
Roberto Jimeno
jimeno@pc6.politicas.unam.mx
Tue, 17 Mar 1998 12:43:15 -0600
> A los buenos dias a todos .
> Tengo el siguiente problema.
> En un directorio tengo los siguientes fichero.
>
> 980312-0001
> 980312-0002
> 980312-0003
> Si en un determinado momento deseo insertar otro que se llame
> 980312-0001*0 el me lo inserta asi:
> 980312-0001
> 980312-0001*0
> 980312-0002
> 980312-0003
Un momento: ¿que sinifica "el" en el parrafo anterior?
Significa que el comando ls regresa esa lista, o como sabes
que "el" inserta las cosas en ese orden.
Esa pregunta la hago porque "el" tiene la respuesta. Observa:
> Es decir , me lo inserta correctamente, lo que yo ahora hago es un :
> opendir (DIRECTORIO,"/lo que sea/grupo_news");
> @nombres_de_mensajes= readdir DIRECTORIO;
> closedir (DIRECTORIO);
> y quiero que me los muestre en el orden de arriba, en cambio si hago un
> print"@nombres_de_mensajes\n"; no me aparecen en el orden anterio sino
> asi:
> 980312-0001
> 980312-0002
> 980312-0003
> 980312-0001*0
Bueno, que te parece modificar tu programa para que haga:
@nombres_de_mensajes = <"/lo_que_sea/grupo_news/*"> ;
print "@nombres_de_mensajes\n" ;
o
@nombres_de_mensajes = glob "/lo_que_sea/grupo_news/*" ;
print "@nombres_de_mensajes\n" ;
o
@nombres_de_mensajes = `ls /lo_que_sea/grupo_news/*` ;
print "%s\n", sort @nombres_de_mensajes ;
o alguna combinación más complicada usando el comando echo del
sistema, el comando sort del sistema (con parámentros como "-n" o
algún otro) y:
foreach $elemento (@nombres_de_mensajes) {
print "$elemento \n" ;
}
de modo que realmente obtengas lo que quieres.
> ¿Me podeis echar una mano?.¿Tal vez sea problema del opendir??????
Hasta donde puedo recordar, el manual opendir dice que se
garantiza que se leerá todo, pero no se garantiza el orden, de modo
que no creo que opendir tenga ningun problema.
Suerte.
--
-------------------------------------------------------------------------------
Roberto Jimeno. From The Cher-Speak Dictionary for the totally clueless:
and.I'm.all (AND IM OL), excl. I was saying things such as. He's all "where were you?" and I'm all "what's it your business" and he's all.