En perl las cosas se pueden hacer de muchas maneras,así que vamos a ver algunas(no todas),pero las que me gustan o conozco:
En todos los ejemplos,el array @archivos contendrá los archivos filtrados,este sera el que pueden usar para lo que necesiten.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | use feature 'switch'; # Usamos switch my $dir = "."; # . hace referencia al directorio actual my @archivos; opendir(my $recorrer, $dir) || die "Error :( $! \n"; # recorrer es el filehandle while(readdir $recorrer){ # Leemos el directorio if (-f $dir . "/" . $_) { # Vemos si es un fichero given ($_) { when (/.*jpg/) { # Elegimos la extension push (@archivos, $_); # Añadimos al array el archivo } when (/.*jpeg/) { # Elegimos otra(si queremos) push (@archivos, $_); } } } } closedir $recorrer; # Cerramos el directorio |
Bien ese es que yo uso mas,es un poco a lo Java,pero me gusta que se vea mucho codigo,aunque luego me dicen que mientra menos mejor,y en perl eso es muy simple.
Bien ahora una forma mas sencilla,usando glob al estilo python,glob es similar a los pipes de Unix:
my @arr = glob("*.jpg");
Así de sencillo,aquí el problema es para añadir mas,podemos hacer esto si quisieramos tambien los .jpeg.
1 2 3 4 | foreach (glob("*.jpeg")) { push (@archivos, $_); } |
Bien,ahora una manera aun mas sencilla:
my @arr = <*.jpg>;
De igual manera si queremos añadir mas:
1 2 3 4 | foreach (<*.jpeg>)) { push (@archivos, $_); } |
Si queremos usar un directorio en especifico lo especificamos antes:
my @archivos =;
Ahora por ejemplo para mostrar en pantalla:
1 2 3 4 5 6 7 | use feature 'say'; my @archivos = <*.pl>; foreach (@archivos) { say $_; } |
Eso es todo.
No hay comentarios.:
Publicar un comentario
Los comentarios serán revisados antes de ser publicados.