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

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


Kaum macht man es richtig, funktioniert's auch :-D

Für alle die es interessiert, die Funktionen meiner Wahl:

seek() zum zurücksetzen des Filepointers auf Anfang
readline() um das doch etwas merkwürdige Konstrukt $temp_fh[0] nutzen zu können

Danke trotzdem :D

Am 06.09.2010 um 14:32 schrieb Martin Probst (RobHost Support):

> 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
> 
> 
> 
> _______________________________________________
> Dresden-pm mailing list
> Dresden-pm at pm.org
> http://mail.pm.org/mailman/listinfo/dresden-pm



Mehr Informationen über die Mailingliste Dresden-pm