next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Operaciones con ficheros, links Sup: Directorios Ant: Acceso Mediante glob Err: Si hallas una errata ...


Práctica: Viejos y Grandes Recursivo

Lea la documentación de File::Find. Este módulo permite un recorrido recursivo de los directorios. He aqui un ejemplo de uso:
  DB<1> use File::Find
  DB<2> sub Wanted { /\.yp$/ or return; print $_,"\n" }
  DB<3> find(\&Wanted, '.')
Autoaction1.yp
Calc.yp
Calc2.yp
Infixtree.yp
Yacc.yp

La función find espera como primer argumento una referencia a una subrutina. El operador Perl \ actúa de manera similar al ampersand en C: nos devuelve una referencia al objeto al que se le aplica. Por ejemplo:

$ra = \$a;  # referencia a escalar
$rb = \@b;  # referencia a arreglo
$rc = \%c;  # referencia a hash
$rf = \&f;  # referencia a subrutina
$rx = \$rb; # referencia a referencia

Usando File::Find escriba una función que muestre los ficheros en el directorio actual mayores que un cierto tamaño dado.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Operaciones con ficheros, links Sup: Directorios Ant: Acceso Mediante glob Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21