[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