Open Source im professionellen Einsatz
Linux-Magazin 06/2017
371

Gutes altes Perl

Das gute alte Perl holt Webdokumente traditionsgemäß mit dem CPAN-Modul LWP::UserAgent vom Netz. SSL-Support ist nicht automatisch dabei, kommt aber magisch hinzu, falls der Admin das CPAN-Modul LWP::Protocol::https nachinstalliert, das sich an eine verfügbare Open-SSL-Installation und einer Liste von Rootzertifikaten hängt.

Listing 5 zeigt neben vorschriftsmäßiger Fehlerbehandlung auch noch eine Eigenheit: Wie manch andere hier vorgestellte Bibliothek folgt es Redirects automatisch, erkennt »ISO-8859-1« als Kodierung von Google.de, aber liefert aus »decoded_content()« (im Gegensatz zu »content()« ) einen UTF-8-String zurück. Das ist gut so, denn die Weiterverarbeitung der Daten im Programmcode setzt oft UTF-8 voraus und führt anderweitig zu unschönen Problemen.

Listing 5

http-get.pl

01 #!/usr/local/bin/perl -w
02 use strict;
03 use LWP::UserAgent;
04
05 my $ua = LWP::UserAgent->new;
06
07 my $resp = $ua->get( "http://google.de" );
08 if( $resp->is_error ) {
09     die "Error: ", $ua->message;
10 }
11 binmode STDOUT, ":utf8";
12 print $resp->decoded_content;

Um aber einen UTF-8-String dann auch als solchen mit »print« unmodifiziert auszugeben, muss das Skript die Standardausgabe zuerst mit Hilfe von »binmode« auf den UTF-8-Modus einnorden. Diese eher umständliche Vorgehensweise ist der Kompatibilität geschuldet und stellt immerhin sicher, dass alte Skripte aus der Anfangszeit von Perls UTF-8-Support mit den neuen Perl-Versionen nicht gleich ausflippen.

Jaja, das Alter, es ist eben kein Zuckerschlecken, wenn's in allen Gelenken knackt und derweil die jungen Kerle wilde Kapriolen schlagen!

Online PLUS

Im Screencast demonstriert Michael Schilli das Beispiel: http://www.linux-magazin.de/Ausgaben/2017/06/plus

Infos

  1. Listings zu diesem Artikel:http://www.linux-magazin.de/static/listings/magazin/2017/06/snapshot/
  2. Michael Schilli, "Auf mehr als ein Wort": Linux-Magazin 04/17, S. 96.,http://www.linux-magazin.de/Ausgaben/2017/04/Snapshot
  3. Michael Schilli, "Pyramide der Verdammnis": Linux-Magazin 12/14, S. 114, http://www.linux-magazin.de/Ausgaben/2017/04/Snapshot
  4. Sergio De Simone, "Node 7.6 Brings Default Async/Await Support": https://www.infoq.com/news/2017/02/node-76-async-await

Der Autor

Michael Schilli arbeitet als Software-Engineer in der San Francisco Bay Area in Kalifornien. In seiner seit 1997 laufenden Kolumne forscht er jeden Monat nach praktischen Anwendungen verschiedener Programmiersprachen. Unter mailto:mschilli@perlmeister.com beantwortet er gerne Fragen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Perl-Snapshot

    Der Musikstreaming-Service Spotify pumpt gegen eine monatliche Gebühr Musik auf den Desktop und aufs Smartphone. Noch mehr Groove hat, dass Perl-Hacker Michael Schilli per Oauth-geschütztem Web-API seine Spotify-Playlisten für die Ewigkeit archiviert.

  • Perl-Snapshot

    Ist Perlmeister Schilli unterwegs, weiß er gern, was daheim abgeht. Mit zwei Skripten bekommt er es hin, dass die angeschaffte Billigkamera über das Tumblr-API zyklisch Schnappschüsse auf der Micro-Blogplattform ablegt. Tierisch schick, diese Überwachung.

  • Perl-Snapshot

    Ein Screenscraper und eine Applikation für das offizielle Ebay-API lösen Alarm bei neu eingegangenem Kunden-Feedback aus und spüren Fehler in der monatlichen Ebay-Abrechnung auf.

  • Perl-Snapshot

    Mit einer chinesischen Guillotine und einem Einzugsscanner bewaffnet geht Perlmeister Michael Schilli diesmal seinen Büchern an den Leim. Die Grundlage seiner bibliophoben Tat liefert Google Drive, das mit 5 GByte genug Speicherplatz für ein Online-PDF-Lager mit eingescannten Büchern bietet.

  • IRC-Bots

    Warum sollten Chaträume nur für Menschen da sein? Dominik Honnef zeigt, wie sich spezialisierte Bots in Wissensdatenbanken oder Ticketsysteme einbinden lassen und so die Arbeit erleichtern.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.