Wie kann ich ein Dateihandle in einer Perl-Klasse speichern und darauf zugreifen?

7

Bitte schauen Sie sich zuerst den folgenden Code an.

%Vor%

Ich möchte ein Datei-Handle innerhalb einer Klasse mit Hash speichern. Das Datei-Handle ist zunächst nicht definiert, kann aber später durch Aufrufen der Funktion Setfd initialisiert werden. dann write kann aufgerufen werden, um die Zeichenfolge "hallo word" in eine Datei zu schreiben, die durch das Datei-Handle angegeben wird, vorausgesetzt, dass das Dateihandle das Ergebnis eines erfolgreichen "write" -Öffners ist.

aber Perl-Compiler beschwert sich gerade, dass es Syntaxfehler in der Zeile "Drucken" gibt. Kann mir irgendjemand von mir sagen, was hier nicht stimmt? Danke im Voraus.

    
Haiyuan Zhang 12.06.2010, 05:28
quelle

2 Antworten

14

Sie müssen den Ausdruck $self->{_fd} in einen Block schreiben oder einem einfacheren Ausdruck zuweisen:

%Vor%

Von perldoc -f print :

  

Beachten Sie, dass Sie, wenn Sie FILEHANDLEs in einem Array speichern oder einen anderen Ausdruck verwenden, der komplexer ist als eine skalare Variable, um ihn abzurufen, einen Block verwenden müssen, der stattdessen den Dateihandle-Wert zurückgibt:

%Vor%     
mob 12.06.2010, 05:41
quelle
6

Alternativ:

%Vor%     
Sean 12.06.2010 16:16
quelle

Tags und Links