Para saber en qué lugar del sistema de archivos te encuentras, usa el módulo
Cwd (parte de la distribución de Perl, no tienes que instalar nada). Este módulo exporta varias funciones para saber desde dónde se llama el
script.
Para leer un directorio primero tienes que 'abrirlo' con
opendir(). Una vez abierto, puedes ver lo que hay dentro con
readdir().
En este paso puedes usar los test de Perl, tipo
Using perl Syntax Highlighting
if (-d
$fichero) {
# hacer algo;
}
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
para procesar sólo los directorios que encuentres. Si necesitas encontrar directorios de manera recursiva, entonces tendrás que usar
File::Find.
Los distintos tipos de
file tests los puedes ver aquí:
http://perldoc.perl.org/functions/-X.htmlY una vez procesado, lo cierras con
closedir().
Si pones código que hayas escrito y no funciona, seguro que se puede mirar por qué.
Aquí tienes un pequeño
script que hace eso que quieres:
Using perl Syntax Highlighting
#!usr/bin/perl
use strict
;
use warnings
;
use Cwd
;
my $dir = getcwd
;
opendir (DIR
, $dir) or die "cannot open $dir: $!";
while ( my $filename = readdir(DIR
)) {
next if $filename eq '.' or $filename eq '..';
if (-d
$filename ) {
print "$filename is a folder\n";
}
elsif (-f
$filename) {
print "$filename is a file\n";
}
}
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4