Как передать параметры в подпрограмму File :: Find, которая обрабатывает каждый файл?

С помощьюFile :: FindКак я могу передать параметры функции, которая обрабатывает каждый файл?

У меня есть Perl-скрипт, который пересекает каталоги, чтобы конвертировать некоторые 3-канальныеTIFF файлы в файлы JPEG (3 файла JPEG на файл TIFF). Это работает, но я хотел бы передать некоторые параметры функции, которая обрабатывает каждый файл (за исключением использования глобальных переменных).

Вот соответствующая часть скрипта, где я попытался передать параметр:

use File::Find;

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

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

$isDryRun это скаляр$startDir это строка, полный путь к каталогу.

$IsDryRun2 не установлено:

Использование неинициализированного значения $ IsDryRun2 в конкатенации (.) Или в строке в строке 197 TIFFconvert.pl (# 1) (W неинициализированный) Неопределенное значение использовалось так, как если бы оно уже было определено. Это было истолковано как "" или 0, но, возможно, это была ошибка. Чтобы подавить это предупреждение, назначьте определенное значение вашим переменным.

(Старый вызов без параметров был:)find ( \&findFiles, $startDir);

Тестовая платформа (но домашним продуктом будет Linux-машина, Ubuntu 9.1, Perl 5.10, 64-битная): ActiveState Perl 64-битная. Windows XP. Из perl -v:v5.10.0 для MSWin32-x64-multi-thread Binary build 1004 [287188], предоставляемой ActiveState.

Ответы на вопрос(4)

Ваш ответ на вопрос