[Dresden-pm] File::Temp und lesender Zugriff

Martin Probst (RobHost Support) support at robhost.de
Mo Sep 6 05:32:05 PDT 2010


Hi Leute,

hab mal wieder ein ziemlich merkwürdiges, mir nicht erklärbares Phänomen. Ich erstelle mir via File::Temp temporäre Dateien:

<snip>
my( $fh, $filename ) = tempfile( $template, DIR => $config{'temp_dir'}, UNLINK => $config{'unlink_temp_files'} );
return( $fh, $filename );
</snip>

Diese nutze ich zuerst schreibend für, wer hätte es gedacht, temporäre Ausgaben:

<snip>
my @temp_fh = mktemp_file( "$config{'self'}.$config{'pid'}.$bin.temp.XXXXX" ); 
[...]
print { $temp_fh[0] } ( join( " ", @data ) );
</snipt>

Das funktioniert auch prima, die Daten stehen danach wie gewünscht in der Datei. Das Problem ist nur, das ich nich lesend auf die Datei zugreifen kann. Wenn ich z.B. via

my $line = <$temp_fh[0]>;
print $line;

auf die Daten in der Datei zugreifen möchte, bekomme ich immer nur ein GLOB* Objekt zurück geliefert.
Auch die dazugehörigen IO::Handle Funktionen getline(s) liefern mir keine werte zurück. In der perldoc von File::Temp steht jetzt aber auch nichts explizites über lesenden Zugriff außer das gewöhnliche <$fh>.

Sehe ich den Wald vor lauter Bäumen nicht?

MfG
Maddin





Mehr Informationen über die Mailingliste Dresden-pm