Ich versuche die Antwort eines Curl-Aufrufs in eine Variable in Perl zu bekommen.
%Vor%funktioniert nicht. Wenn ich dies in der Befehlszeile ausführe, druckt der Curl-Aufruf alle seine Ausgaben korrekt im Terminal, aber die Variable ist nicht mit diesen Daten gefüllt.
Gibt es eine Möglichkeit, dies zu tun, ohne die Perl curl lib zu installieren und aufzurufen?
Sie können sich auch den LWP :: UserAgent ansehen oder sogar LWP :: Simple .
Was möchten Sie wirklich tun? Verwenden Sie curl
um jeden Preis, oder greifen Sie auf den Inhalt einer Webseite?
Eine bessere Möglichkeit, dies zu tun (die auf keine externen Programme angewiesen ist, die möglicherweise auf dem nächsten Rechner installiert sind, auf dem Sie dies tun müssen), wäre:
%Vor% Wenn Sie sehen möchten, warum das GET fehlgeschlagen ist, oder mehrere Seiten von derselben Website erfassen, müssen Sie etwas mehr Maschinen verwenden. perldoc lwpcook
wird Sie starten.
In der Shell 2>
bedeutet Weiterleitungs-Fileno 2. Fileno 2 ist immer was ein Programm als stderr sieht. Ähnlich ist fileno 0 stdin und fileno 1 ist stdout. Wenn Sie also 2>&1
sagen, sagen Sie der Shell, stderr (fileno 2) in stdout umzuleiten (fileno 1). Da der Backticks-Operator die Shell zum Ausführen des von Ihnen angegebenen Befehls verwendet, können Sie die Shell-Umleitung verwenden, also
sagt curl, seine Ausgabe in stdout umzuleiten, und da der backtick-Operator stdout abfängt, bekommen Sie, wonach Sie gesucht haben.
Versuchen Sie Folgendes:
%Vor% curl
zeigt Fortschrittsinformationen auf stderr an. Das Umleiten auf / dev / null macht es einfacher zu sehen, was vor sich geht.