Wie übergebe ich Parameter an die Subroutine File :: Find, die jede Datei verarbeitet?

VerwendenDatei :: Suchen, wie kann ich der Funktion, die jede Datei verarbeitet, Parameter übergeben?

Ich habe ein Perl-Skript, das Verzeichnisse durchläuft, um einige 3-Kanal zu konvertierenTIFF Dateien in JPEG-Dateien (3 JPEG-Dateien pro TIFF-Datei). Das funktioniert, aber ich möchte einige Parameter an die Funktion übergeben, die jede Datei verarbeitet (abgesehen von der Verwendung globaler Variablen).

Hier ist der relevante Teil des Skripts, in dem ich versucht habe, den Parameter zu übergeben:

use File::Find;

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

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

$isDryRun ist ein Skalar.$startDir ist eine Zeichenfolge, der vollständige Pfad zu einem Verzeichnis.

$IsDryRun2 ist nicht gesetzt:

Verwendung des nicht initialisierten Werts $ IsDryRun2 in Verkettung (.) Oder Zeichenfolge in TIFFconvert.pl Zeile 197 (# 1) (W nicht initialisiert) Ein nicht definierter Wert wurde verwendet, als wäre er bereits definiert. Es wurde als "" oder "0" interpretiert, aber vielleicht war es ein Fehler. Um diese Warnung zu unterdrücken, weisen Sie Ihren Variablen einen definierten Wert zu.

(Der alte Aufruf ohne Parameter war:find ( \&findFiles, $startDir); )

Testplattform (aber die Produktionsumgebung wird eine Linux-Maschine sein, Ubuntu 9.1, Perl 5.10, 64 Bit): ActiveState Perl 64 Bit. Windows XP. Von Perl -v:v5.10.0 erstellt für MSWin32-x64-Multithread Binary Build 1004 [287188], bereitgestellt von ActiveState.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage