¿Cómo paso los parámetros a la subrutina File :: Find que procesa cada archivo?
UtilizandoArchivo :: Buscar, ¿cómo puedo pasar parámetros a la función que procesa cada archivo?
Tengo un script de Perl que atraviesa directorios para convertir algunos canales de 3PELEA archivos a archivos JPEG (3 archivos JPEG por archivo TIFF). Esto funciona, pero me gustaría pasar algunos parámetros a la función que procesa cada archivo (a excepción de usar variables globales).
Aquí está la parte relevante del script donde intenté pasar el parámetro:
use File::Find;
sub findFiles
{
my $IsDryRun2 = ${$_[0]}{anInIsDryRun2};
}
find ( { wanted => \&findFiles, anInIsDryRun2 => $isDryRun }, $startDir);
$isDryRun
es un escalar$startDir
es una cadena, ruta completa a un directorio.
$IsDryRun2
no está establecido:
Uso del valor no inicializado $ IsDryRun2 en concatenación (.) O cadena en la línea TIFFconvert.pl 197 (# 1) (W sin inicializar) Se usó un valor indefinido como si ya estuviera definido. Fue interpretado como un "" o un 0, pero tal vez fue un error. Para suprimir esta advertencia, asigne un valor definido a sus variables.
(La antigua llamada sin parámetros era:find ( \&findFiles, $startDir);
)
Plataforma de prueba (pero el hogar de producción será una máquina Linux, Ubuntu 9.1, Perl 5.10, 64 bit): ActiveState Perl 64 bit. Windows XP. Desde perl -v:v5.10.0 creado para MSWin32-x64-multi-thread Binary build 1004 [287188] proporcionado por ActiveState.