perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 34
Click for quality!




11.02.2012 / 17:04

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragprint an mehrere Filehandles gleichzeitig?
Seitenanfang
Hi !

Ich möchte "print" auf mehrere (eigentlich zwei) Filehandles gleichzeitig ausführen, sodass der selbe Text in zwei verschiedene Files geschrieben wird.

Ich glaube bereits herausgefunden zu haben, dass das mit TIEHANDLE (Tie::Handle) machbar ist. Zwar ist mein Englisch nicht gerade schlecht, aber auf der perldoc site steige ich trotzdem nicht ganz durch - kann mir jemand n Tip geben?

Dankschön & Gruss
KareB

Datum: 27.06.2007-17:08

Beitragre: print an mehrere Filehandles gleichzeitig?
Seitenanfang
Mit Tie::Handle ging es sicher auch, du muesstest dann aber eine Klasse schreiben die die Methoden implementiert die zum Arbeiten mit Dateihandles benoetigt wird. Es gibt aber das Modul IO::Tee, das kann Input- und Output-Multiplexing, also genau das was du brauchst:

#!/usr/bin/perl

use strict;
use warnings;

use IO::Tee;

my $logfile_path = '/tmp/tmp_logfile';

my $logfile_h = IO::File->new();

$logfile_h->open($logfile_path, 'a')
or die "Could not open logfile for writing: $!\n";

# now the interesting part

# creates new IO::Tee Object with STDERR and logfile filehandle
my $tee = IO::Tee->new(\*STDERR, $logfile_h);

# prints ERROR to STDERR and logfile
print $tee "Error example!\n";

# the same as above
$tee->print("Error example!\n");

Datum: 27.06.2007-18:25

Beitragre: print an mehrere Filehandles gleichzeitig?
Seitenanfang
Wow, das sieht ja gleich viel einfacher aus!!
Werd das dann gleich mal ausprobieren, danke erstmal & schönen Feierabend :-)

KareB

Datum: 27.06.2007-18:34

-






-
-