• Publicidad

Listar directorios

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

Listar directorios

Notapor DETA » 2006-04-06 05:19 @263

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 dónde está el fallo porque no sé qué más cambiar.

MIL GRACIAS...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use File::Find;
  4. print "introduce la ruta del directorio que quieres listar: ";
  5. $dir = <STDIN>;
  6. chomp $dir;
  7.  
  8. #si ejecuto esta orden sólo me dice los archivos de este directorio, pero
  9. #yo quiero que me lea el directorio que yo le introduzco.
  10. #my $dir = 'C:/BIOLOGIA/' ;
  11.  
  12. find( \&imprimir_directorio, $dir );
  13.  
  14. sub imprimir_directorio {
  15.     my $elemento = $_;
  16.     print "$File::Find::name\n"   if -d $elemento;
  17.     print "archivo: $elemento\n:" if -f $elemento;
  18. }
  19. exit;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
DETA
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-04-06 05:13 @259

Publicidad

Re: Listar directorios

Notapor explorer » 2006-04-06 06:38 @318

Si estás en MSDOS o Windows, asegúrate de que estás 'escapando' las barras diagonales inversas (\).

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 las barras y las cambia automáticamente a barras inversas.

Además, hay algún detalle suelto... prueba:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use File::Find;
  4. use warnings;
  5. use strict;
  6.  
  7. print "Introduce la ruta del directorio que quieres listar: ";
  8. my $dir = <STDIN>;
  9. chomp $dir;
  10.  
  11. find(\&imprimir_directorio, ( $dir )  );
  12.  
  13. sub imprimir_directorio{
  14.     my $elemento = $_;
  15.     print "$File::Find::name\n" if -d $elemento;
  16.     print "archivo: $elemento\n:" if -f $elemento;
  17. }
  18. exit;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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 DETA » 2006-04-06 07:35 @358

Muchíiiiiiiiiiiiiisimas gracias.

Voy a seguir haciendo cosas con ese script y si tengo más dudas os lo preguntaré, aunque espero no tenerlas.
DETA
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2006-04-06 05:13 @259


Volver a Básico

¿Quién está conectado?

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