[Vienna-pm] Nachtrag zu Escapen von Shellparametern: Fehler oder Feature?
Calli
gooly at gmx.at
Mon May 5 04:34:30 PDT 2008
Am Montag, 28. April 2008 schrieb Josef Schmid:
> Stefan Weiss schrieb:
> ich glaub ab 5.6 (oder ab 5.8?)
> my $result=do {
> open(my $fh,'-|','faxjob','--from',$from,'--faxnum',$num,...) or
> die; local $/; <$fh>
> };
>
hab das mal versucht mit `curl -I` - hmm:
also aus der Schleife 1 (s.u) liefert die Zeile
open(my $fh,'-|','curl', '-I',$u )
auf der Konsole einen unerwünschten overhead:
% Total % Received % Xferd Average Speed ..
...
0 20891 0 0 ...
Die Gleiche kommt bei Schleife 2 (s.u.) mit Zeile:
my $size = $1
if ( `curl -I $u` =~ /.+?Length:\D*?(\d+)\D*/g );
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?
# die Schleife 1
foreach my $u ( @urls ) {
my $size = do {# , '|','grep','Length'
open(my $fh,'-|','curl', '-I',$u ) or die "uups";
local $/; local $_ = <$fh>;
/.+?Length:\D*?(\d+)\D*/;
$1;
};
print "$u => $size b\n";
last;
} else {
print "\n$u => "
}
}
# Schleife 2
foreach my $u ( @urls ) {
my $size = $1
if ( `curl -I $u` =~ /.+?Length:\D*?(\d+)\D*/g );
print "$u => $size b\n";
}
# Schleife 3
foreach my $u ( @urls ) {
my $size = $1
if ( `curl -I $u 2>/dev/null`
=~ /.+?Length:\D*?(\d+)\D*/ );
print "$u => $size b\n";
}
More information about the Vienna-pm
mailing list