Filehandle referenzieren und zurueck
speedy
- perl
Hallo,
ich wollte ein Filehandle in einem Hash speichern, da ich diesen ueberall mit hin nehme. Nur beim dereferenzieren des FileHandles bringt er mir einen Syntax Error:
if(open(LOGHANDLE,">$v->{logfile}"))
{
$v->{LOGHANDLE} = \*LOGHANDLE;
}
Nun wollte ich in einer Subroutine per:
print *{$v->{LOGHANDLE}} "Irgendein Text";
bzw. per (da das laut SelfHTML auchfunktionieren soll)
print $v->{LOGHANDLE} "Irgendein Text";
dort reinschreiben.
... aber er bringt mir einen "String found where operator expected at ..." bzw. "(Missing operator before "Irgendein Text"?)"
Jemand ne Idee, wie es richtig geht ?
MFG,
speedy
Hallo speedy,
if(open(LOGHANDLE,">$v->{logfile}"))
{
$v->{LOGHANDLE} = \*LOGHANDLE;
}
Soweit korrekt. Du könntest aber auch einfach
unless(open($v->{LOGHANDLE},'>'.$v->{logfile})) {
# fehlerbehandlung
}
schreiben ;)
Nun wollte ich in einer Subroutine per:
print *{$v->{LOGHANDLE}} "Irgendein Text";
print {$v->{LOGHANDLE}} "blahr\n";
Du musst dem Perl-Interpreter sagen, dass das zusammengehört. Das
versteht er in dem Kontext leider nicht.
Grüße,
CK
Hallo,
print {$v->{LOGHANDLE}} "blahr\n";
Du musst dem Perl-Interpreter sagen, dass das zusammengehört. Das
Also ich weiss jetzt nicht, ob ich das falsch her reinkopiert habe, aber vor der ersten Klammer hatte ic noch ein * ... ansonsten verstehe ich nicht, wie du das meinst mit "dass das zusammengehoert". Wie schreibt man was, das "zusammengehoeren" soll ?
MFG,
speedy
Hallo speedy,
Du musst dem Perl-Interpreter sagen, dass das zusammengehört. Das
Also ich weiss jetzt nicht, ob ich das falsch her reinkopiert habe,
aber vor der ersten Klammer hatte ic noch ein *
Ja. Und ich habe dir da drunter die richtige Lösung geschrieben. Der
Asterix war halt falsch.
... ansonsten verstehe ich nicht, wie du das meinst mit "dass das
zusammengehoert". Wie schreibt man was, das "zusammengehoeren" soll?
Wie gesagt, so:
print {$v->{LOGHANDLE}} "blahr\n";
Grüße,
CK