[Vienna-pm] Zusätzlicher Nachtrag zu Escapen von Shellparametern: Fehler oder Feature?

Josef Schmid e9427749 at stud4.tuwien.ac.at
Mon May 5 05:30:24 PDT 2008


Leopold Toetsch schrieb:
> Am Montag, 5. Mai 2008 13:34 schrieb Calli:
> 
> [ stderr output ]
> 
>> Mit einem 2>/dev/null kann ich den verhindern, aber nur bei version 2
>> bzw. Schleife 3:
>>  my $size = $1
>>               if ( `curl -I $u 2>/dev/null`
>>                      =~ /.+?Length:\D*?(\d+)\D*/ );
>>
>> Hier
>>      open(my $fh,'-|','curl', '-I',$u,'2>/dev/null/' ) or die "uups";
>> klappt das nicht - warum?
> 
> In der ersten Variante wird eine Subshell erzeugt, in der 2. nicht. S. auch:
> 
> $ perldoc perlipc
> 
> /Safe Pipe Opens


1.) Es gibt eine Menge von CPAN-Modulen für das saugen von Webseiten.
     Ich glaub sogar einiges in den Core-Modulen.
     Also ohne curl.
2.) nächster Lösungsansatz: curl kennt die Option --silent
3.) Die Standard-Dateideskriptoren werden an den Kindprozess vererbt.
     also nach dem "do {" ein "local *STDERR=IO::File('>','/dev/null');"
     einfügen, sollte auch helfen.


pfiateng,
   Josef




More information about the Vienna-pm mailing list