Como faço para passar parâmetros para a sub-rotina File :: Find que processa cada arquivo?

UsandoArquivo :: Encontrar, como posso passar parâmetros para a função que processa cada arquivo?

Eu tenho um script Perl que atravessa diretórios para converter alguns 3 canaisTIFF arquivos para arquivos JPEG (3 arquivos JPEG por arquivo TIFF). Isso funciona, mas eu gostaria de passar alguns parâmetros para a função que processa cada arquivo (curto de usar variáveis ​​globais).

Aqui está a parte relevante do script em que tentei passar o parâmetro:

use File::Find;

sub findFiles
{
    my $IsDryRun2 = ${$_[0]}{anInIsDryRun2};
}

find ( { wanted => \&findFiles, anInIsDryRun2 => $isDryRun }, $startDir);

$isDryRun é um escalar.$startDir é uma string, caminho completo para um diretório.

$IsDryRun2 não está definido:

Uso do valor não inicializado $ IsDryRun2 na concatenação (.) Ou string na linha TIFFconvert.pl 197 (# 1) (W não inicializado) Um valor indefinido foi usado como se já estivesse definido. Foi interpretado como um "" ou um 0, mas talvez tenha sido um erro. Para suprimir este aviso, atribua um valor definido às suas variáveis.

(A chamada antiga sem parâmetros foi:find ( \&findFiles, $startDir); )

Plataforma de teste (mas a casa de produção será uma máquina Linux, Ubuntu 9.1, Perl 5.10, 64 bit): ActiveState Perl 64 bit. Windows XP. De perl -v:v5.10.0 construído para a compilação binária 1004 do MSWin32-x64-multi-thread [287188] fornecida pelo ActiveState.

questionAnswers(4)

yourAnswerToTheQuestion