Thread gnu-grep braucht ewig unter Perl (system) (7 answers)
Opened by equinox at 2010-11-01 12:37

topeg
 2010-11-03 13:33
#142426 #142426
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
schreibe die Stelle:
Code (perl): (dl )
1
2
3
4
5
        elsif ($pid == 0) {
            my $cmd = '/bin/zgrep -E " '.$method_string.'.* HTTP/[0-9]\.[0-9]\" [23][0-9]{2}" '.$_." 2>/dev/null";
            print `$cmd`; 
            exit(0);    
        }
mal so:
Code (perl): (dl )
1
2
3
4
        elsif ($pid == 0) {
            exec('/bin/zgrep -E " '.$method_string.'.* HTTP/[0-9]\.[0-9]\" [23][0-9]{2}" '.$_." 2>/dev/null");
            die(Fehler);
        }


Und das warten auf die Kinder würde ich andres machen:
Code (perl): (dl )
1
2
3
4
5
    local $SIG{CHLD}=sub{
        my $pid=wait();
        delete($result->{$pid})
      };
    sleep 1 while(keys(%$result));



Aber wie ich schon gesagte, du Quotest manches etwas durcheinander. An einigen Stellen braucht du die Anführungszeichen nicht zu entwerten und an anderer Stelle benutzt du doppelte Anführungszeichen obwohl Einfache besser währen. Wenn du das so machst musst du manche Quotes verdoppeln, damit sie auch in der Shell ankommen.
Darum versuch ich das Quoten, wann immer möglich durch die passende Wahl der Anführungszeichen zu verhindern.

View full thread gnu-grep braucht ewig unter Perl (system)