[Vienna-pm] anmerkungen ..

gooly at gmx.at gooly at gmx.at
Fri May 25 09:09:18 PDT 2007


Hallo,

kurze Frage nach Einschätzungen..
Ich hab meinen kleinen Server, der ab und zu Files aus der RAM-Disk an 
remote-Clients (über $SOCKET) schicken soll. 
Die Files sind zT gezippt zum Teil nicht.
Um jetzt einerseits das Perl-Prg kleinzuhalten, andererseits den 
Speicherverbrauch aus dem (24/7) Perl-Prg 'raus'-zuhalten (ich erinnere 
mich an einen Thread zu Speicherfressern hier) habe ich mir etwas s.u. 
ausgedacht. 

Ich bin aber ein bißchen unsicher, das Ganze schaut schon so einfach 
aus, dass ich nicht ganz dran gkauben kann. Denn wenn es wirklich so 
simpel ist, sollte das ein Perl-Standardfeature sein und in den 
tutorials stehen - oder?

foreach my $f ( liesFiles($FileDir) ) {
   open( SAVEOUT, "<&STDOUT" ) or warn "can't save stdout: $!\n";
   open( STDOUT, "<&", $SOCKET )  or warn "can't dup to stdout:$!\n";
   if ($f =~ /\.zip/) {
      system('unzip', '-p', $f );
   } else {
      system('cat', $f);
   }
   open( STDOUT, "<&SAVEOUT" ) or warn "can't restore stdout: $!\n";
}

Also das mit unzip klappt.
Das mit cat hab ich noch nicht probiert. Frage dazu gäbe es zu 'cat' 
einen bessere Alternative?
Kann man so wirklich im aufrufenden Perl-Programm den Speicherverbrauch 
vermeiden, den zB ein
	my $str;
	open F, "<$file" or warn "$!\n";
	read F, $str, (-s $file);
	close(F);
	...
von der Größe des Files verursachen würde?
Sieht jemand Risiken oder Probleme?
Wie gesagt das ist so einfach, dass ich noch irgendwo einen Haken 
vermute :)

Ansonsten allen aber ein schöne Ping sten
Calli






More information about the Vienna-pm mailing list