Deko-Banner

Programmieren mit Perl 5 (und Perl 7)

Einleitung

The Perl Camel
Perl 5 ist eine interpretierte, plattformunabhängige Programmiersprache (Skriptsprache), bei deren Entwicklung viel Gewicht auf Flexibilität, Erweiterbarkeit, und insbesondere die Bearbeitung und Auswertung von Textdateien gelegt wurde. Damit wird z.B. die Auswertung von großen Datenmengen oder die Ansteuerung von Geräten mittels Textkommandos ein offensichtlicher Anwendungsbereich.
Perl ist traditionell in der Bioinformatik stark vertreten, in der Implementierung von Webanwendungen (z.B. Buchungsportale) oder in der Finanzwelt. Mit dem Comprehensive Perl Archive Network CPAN existiert ein zentrales Archiv für Erweiterungsmodule. Perl selbst ist freie, quellcodeoffene Software. Unter Linux gehört es typischerweise zur minimalen Systeminstallation; für Windows existieren mehrere Varianten, darunter insbesondere ActivePerl.
Im Rahmen einer generellen Modernisierung der Sprache wurde kürzlich Perl 7 angekündigt; während diese neue Variante noch in der Entwicklung ist, werden wir uns hier an Sprachstandards orientieren, die mit dem Versionsschritt ihre Gültigkeit behalten.

Aktuelle Infos

  • Der Kurs findet Mo., 7.9. - Fr., 11.9.2020 (also für eine Woche) als ganztägiger Blockkurs statt.
  • Im Moment planen wir mit einem vollständig virtuellen Kurs. Details zur Durchführung werden den angemeldeten Teilnehmern per e-mail mitgeteilt.
  • Bitte bei Interesse bis 1.9.2020 in LSF anmelden!
  • LSF-Seite im Vorlesungsverzeichnis mit Link zur Anmeldung
  • Technische Voraussetzungen für den eigenen Rechner: Zoom-Client, Perl-Installation (Windows: am besten Strawberry Perl; Linux: i.d.R. schon vorhanden)
  • Bitte rechnet damit, daß ihr während der Übungen euren privaten Bildschirm zeitweise mit mir und dem Rest des Kurses teilt (und räumt vorher eure Warez, Pix und Hacks auf)... ;)

Lektüreempfehlungen

  • das Skript zum Kurs (das Passwort gibt es in der Vorlesung)
  • chromatic: “Modern Perl”, 4th edition, The Pragmatic Programmers LLC (2015)
    Kostenlos als Ebook online erhältlich hier und hier
Außerdem, optional...
  • Randal L. Schwartz, brian d foy, Tom Phoenix: “Learning Perl”, 7th edition, O’Reilly Media Inc. (2017)
  • Randal L. Schwartz, brian d foy, Tom Phoenix: “Intermediate Perl”, 2nd edition, O’Reilly Media Inc. (2012)
  • brian d foy: “Preparing for Perl 7”, Online Ebook inklusive Updates, Leanpub (2020)

Gliederung des Kurses (wird noch überarbeitet!)

  1. Montag
    1. Einführung
      1. Entstehung und Philosophie
      2. Perl installieren
      3. Community und CPAN
      4. Hello World — schreiben und ausführen
      5. Bücher
      6. Hilfe? Hilfe!
    2. Skalare Daten
      1. Variablen: Bezeichner und “Sigil”
      2. Wert- und Mengen-Kontext
      3. Strings
      4. Zahlen
      5. Booleans
      6. undef und defined
    3. Listen und Arrays
      1. Listen, list context
      2. Arrays als Variablen deklarieren
      3. Mehr Operationen mit Arrays
    4. Übungsaufgaben
  2. Dienstag
    1. Flußkontrolle
      1. Grundsätzliches
      2. if, unless, else, elsif
      3. Bedingungen
      4. Schleifen mit foreach und for
      5. while, until; continue, last
    2. Unterprogramme / Funktionen
      1. Definition
      2. Handhabung von Parametern
      3. Rückgabewert
    3. Pakete, Module, Distributionen und CPAN
      1. Pakete
      2. Module
      3. Distributionen und CPAN
    4. Übungsaufgaben
  3. Mittwoch
    1. Reguläre Ausdrücke I
      1. Definition, Match, Suchen & Ersetzen
      2. Wiederholungen
      3. Metacharacters
      4. Zeichenklassen
    2. Hashes
      1. Grundlegendes, Deklaration, Initialisierung
      2. Existenz, Schlüssel, Werte
    3. Ein- / Ausgabe
      1. Standardeingabe STDIN
      2. <<>> (und <>)
      3. Standardausgabe STDOUT
      4. Formatierte Ausgabe: printf und sprintf
      5. Datei-Handles: öffnen, schließen, binmode
      6. die, warn, autodie
      7. Dateien: schreiben und lesen
    4. Übungsaufgaben
  4. Donnerstag
    1. Operatoren
      1. Präzedenz, Assoziativität, “Arität” und “Fixität”
      2. Numerische Operatoren
      3. String-Operatoren
      4. Logische Operatoren
      5. Der Rest
    2. Reguläre Ausdrücke II
      1. Anker
      2. Capturing
      3. Gruppierung und Alternativen
      4. Escape-Sequenzen
      5. Assertions
      6. Regexp-Modifikatoren
      7. HTML
    3. Referenzen
      1. Konzept
      2. Array- und Hash-Referenzen
      3. Funktionsreferenzen
      4. Mehrdimensionale Datenstrukturen
      5. Referenzen und die Speicherverwaltung
      6. Debugging
    4. Übungsaufgaben
  5. Freitag
    1. Objektorientiertes Programmieren mit Moose
    2. Beispiel Lab::Measurement

Fragen, Anregungen, Kommentare...

Sprechen Sie mich nach der Vorlesung an, schreiben Sie einfach eine e-mail an andreas.huettel@ur.de, oder kommen Sie Montag, 14:00-15:00, bei mir im Büro vorbei (Phy 8.1.01b).
 
Letzte Änderung: 06.09.2020 von Andreas K. Hüttel