Jue Abr 06, 2006 4:19 am
|
 |
DETA
Perlero Nuevo

|
Registrado: 06 Abr 2006
Mensajes: 9
|
|
| Listar directorios |
|
|
Hola a todos:
Estoy intentando hacer un programita en perl que me devuelva el árbol de directorios de cualquier ruta que yo le diga, pero no consigo que me lea la variable que yo le debo introducir.
Por favor, que alguien me indique donde esta el fallo porque no se que mas cambiar.
MIL GRACIAS...
#!/usr/bin/perl
use strict;
use File::Find;
print "introduce la ruta del directorio que quieres listar: ";
$dir = <STDIN>;
chomp $dir;
#si ejecuto esta orden sólo me dice los archivos de este directorio, pero #yo quiero que me lea el directorio que yo le introduzco.
#my $dir = 'C:/BIOLOGIA/' ;
find(\&imprimir_directorio, $dir);
sub imprimir_directorio{
my $elemento = $_;
print "$File::Find::name\n" if -d $elemento;
print "archivo: $elemento\n:" if -f $elemento;
}
exit; |
|
|
|

Jue Abr 06, 2006 5:38 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
Si estás en msdos o windows, asegúrate de que estás 'escapando' los back-slash (\). Por ejemplo, para C:\directorio\ deberás poner C:\\directorio\\. La solución que pones C:/directorio/ sí que es correcta, porque Perl se da cuenta de los slash y los cambia automáticamente a back-slash.
Además, hay algún detalle suelto... prueba:
| Código: |
#!/usr/bin/perl
use File::Find;
use warnings;
use strict;
print "Introduce la ruta del directorio que quieres listar: ";
my $dir = <STDIN>;
chomp $dir;
find(\&imprimir_directorio, ( $dir ) );
sub imprimir_directorio{
my $elemento = $_;
print "$File::Find::name\n" if -d $elemento;
print "archivo: $elemento\n:" if -f $elemento;
}
exit; |
|
|

Jue Abr 06, 2006 6:35 am
|
 |
DETA
Perlero Nuevo

|
Registrado: 06 Abr 2006
Mensajes: 9
|
|
|
|
|
muchíiiiiiiiiiiiiisimas gracias.
voy a seguir haciendo cosas con ese script y si tengo mas dudas os lo preguntaré, aunque espero no tenerlas. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|