PERL. Eine Einführung. von Serap Tekke & Elif Öner

Ähnliche Dokumente
Programmierkurs Java

Übungen Programmieren 1 Felix Rohrer. Übungen

E-PRIME TUTORIUM Die Programmiersprache BASIC

Eine Einführung in Perl

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Step by Step Webserver unter Windows Server von Christian Bartl

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Artikel Schnittstelle über CSV

Internet online Update (Internet Explorer)

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Wirtschaftsinformatik I

Erwin Grüner

Adminer: Installationsanleitung

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Grundlagen von Python

! " # $ " % & Nicki Wruck worldwidewruck

Internet online Update (Mozilla Firefox)

Algorithmen mit Python

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Einführung in die Java- Programmierung

Eine Einführung in die Installation und Nutzung von cygwin

Multimedia im Netz Wintersemester 2011/12

OP-LOG

Professionelle Seminare im Bereich MS-Office

5. Tutorium zu Programmieren

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Durchführung der Datenübernahme nach Reisekosten 2011

Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball

AutoCAD Dienstprogramm zur Lizenzübertragung

Anleitung über den Umgang mit Schildern

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Übungsblatt 3: Algorithmen in Java & Grammatiken

Was meinen die Leute eigentlich mit: Grexit?

AutoTexte und AutoKorrektur unter Outlook verwenden

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Lernwerkstatt 9 privat- Freischaltung

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Leichte-Sprache-Bilder

Visualisierung auf Büro PC s mit dem ibricks Widget

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Version 0.3. Installation von MinGW und Eclipse CDT

Anleitung zum Öffnen meiner Fotoalben bei web.de

Elexis-BlueEvidence-Connector

Beispiel 19. December 4, 2009

Sin-Funktion vgl. Cos-Funktion

Java: Vererbung. Teil 3: super()

Einführung in PHP. (mit Aufgaben)

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Das Leitbild vom Verein WIR

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

Kostenstellen verwalten. Tipps & Tricks

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

WAWI Preiswartung Systemschulung für Einsteiger

Linux Prinzipien und Programmierung

Python SVN-Revision 12

1 Vom Problem zum Programm

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

LANiS Mailversender ( Version 1.2 September 2006)

Zinsrechner. Bedienungsanleitung

Internet Explorer Version 6

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Übung 9 - Lösungsvorschlag

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Grundlagen der Informatik

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

.NET Code schützen. Projekt.NET. Version 1.0

Anleitung - Archivierung

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Benutzerfunktionen Was ist eine Funktion, was ist eine Prozedur?

Anzeige von eingescannten Rechnungen

Microblogging im TCC mit dem TCC Twitter

Eine Anwendung mit InstantRails 1.7

Anwendungsbeispiele Buchhaltung

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN)

Zwischenablage (Bilder, Texte,...)

Arbeiten mit UMLed und Delphi

Graphic Coding. Klausur. 9. Februar Kurs A

Erstellen einer digitalen Signatur für Adobe-Formulare

Grundlagen der Theoretischen Informatik, SoSe 2008

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Zugriff auf Daten der Wago über eine Webseite

Transkript:

PERL Eine Einführung von Serap Tekke & Elif Öner

Inhalt 1. Allgemeines 2. Datentypen 3. Algorithmische Elemente 4. Module 5. Objektorientiertes Programmieren 6. Pattern Matching 2

Was ist Perl... Perl Practical Extraction and Report Language (Praktische Sprache für Daten-Extraktion und -Ausgabe) Stärken: Extraktion - Anschauen von Dateien und das Herausziehen wichtiger Teile Report - Generieren von Ausgaben und Berichte über die gefundenen Informationen praktisch - weil es viel leichter ist, diese Art von Programmen in Perl zu schreiben Skriptsprache, die zum Ausführen eines Programms einen Interpreter benötigt => Interpretersprache 3

und wo kommt es her? 1987 von Larry Wall entwickelt Ziel: Entwicklung einer einfachen Sprache mit Schleifen, Such- und Ersetzungsroutinen Synthese aus diversen Unixtools und sprachen, Shell-Skripte und C seit Perl 5 übernehmen freiwillige Perl-begeisterte Programmierer (Perl 5 Porter) die Entwicklung aktuelle Version: 5.8.7 4

Hello World #! /usr/bin/perl -w print "Hallo Welt!\n"; Shebang/Hashbang Pfad zum Perl-Interpreter Parameter, welcher Fehlermeldungen im Kommandofenster/Browserfenster ausgibt Anweisung für Textausgabe Kürzel für neue Zeile Ende einer Anweisung bei Windows: #! C:\Programme\Perl\bin\perl.exe 5

Datentypen Perl unterscheidet lediglich zw. 2 generellen Sorten von Daten - nach Singular oder Plural Skalare: - einzelner Wert - String (Zeichenfolge) oder Ziffer $skalar = wert; Listen (Arrays): - Satz von skalaren Daten @liste = (wert1, wert2, wert3,, wertn); Bezeichner von Skalaren Zuweisungsoperator Bezeichner von Listen skalare Daten durch Kommata getrennt 6

Hashes: - spezielle Form von Listen, auch bekannt als assoziative Arrays - Ansammlung skalarer Daten, deren individuelle Elemente über einen Index angesprochen werden können - beliebige Skalare (auch Schlüssel genannt) werden später verwendet, um die Werte aus dem Array wieder herauszuholen %hash = (Schlüssel1=> Wert1, Schlüssel2 => Wert2, ); Bezeichner von Hashes Operator zur Spezifikation der Paare (Schlüssel links, Wert rechts) 7

Beispiel: Wörterbuch mit Hash #!C:\Programme\Perl\bin\perl.exe %deutschwort = ("go =>"gehen", "job =>"Arbeit", "pearl" => "Perle", "francais" => "französisch"); $deutschwort{"computer" = "Computer"; $deutschwort{"job" = "Stelle"; delete $deutschwort{"francais"; # Entfernung Schlüssel-Wert-Paar while (1) { # Endlosschleife print "Enter english word: "; chomp ($englishword = <STDIN>); # <STDIN> liest Benutzereingaben; chomp schneidet Zeilenvorschubszeichen ab if(exists $deutschwort{$englishword) { # Prüfung, ob ein Wert als Schlüssel vorkommt print "$englishword = $deutschwort{$englishword\n"; else { print "$englishword not in dictionary.\n"; 8

Bedingungen & Schleifen - If elsif else, - Bedingungsoperator - unless (if not): unless (Bedingungsausdruck) { # mache das hier - while, for, do, until - foreach: foreach ([Liste]) { [Anweisungsblock] - each (while-schleife für Hashes): Im skalaren Kontext: while ($key = each %hash) { print $key = $hash{$key ; Im Listenkontext: while (($key, $value) = each %hash) { print $key = $value \n ; 9

Schleifensteuerung - redo (Wiederholen der Schleife): next (Überspringen der Schleife): $i = 0; while ($i < 10) { $i++; If ($i == 3) {redo print $i /n ; $i = 0; for ($i=0; $i < 10; $i++) { If ($i == 3) {next print $i /n ; - last (Abbruch der Schleife): Labels (Ausstieg aus mehreren Schleifen): $i = 0; while (1) { $i++; print $i /n ; If ($i == 5) {last; LABEL: while (Bedingung1) { # while (Bedingung2) { # if (noch_eine_bedingung) { last LABEL; 10

Subroutinen (Funktionen, Methoden) Subroutine definieren: sub guten_tag { print Guten Tag! Subroutine aufrufen: Aufruf &guten_tag(); Aus Subroutinen Werte zurückgeben: $sum = &sumnums(); print "Summe: $sum\n"; sub sumnums { # Zahlen addieren print 'Geben Sie eine Zahl ein: '; chomp($zahl1 = <STDIN>); print 'Geben Sie eine weitere Zahl ein: '; chomp($zahl2 = <STDIN>); return $zahl1 + $zahl2; 11

In Subroutinen Parameter/Argumente übergeben: Bei skalaren Argumenten: &meine_subroutine (1, 2, 3); Bei Listenargumenten: &meine_subroutine (@liste, @andere_liste); Parameter in der Subroutine entgegennehmen Die an eine Subroutine übergebene Parameterliste wird im lokalen Spezialarray @_ gespeichert. &addiere(2,3); #Aufruf der Subroutine sub addiere { return $_[0] + $_[1]; 12

Module - eine Art Funktion, die nicht direkt in den Perl-Interpreter eingebaut sind, sondern in Form von Perl-Skripts zur Verfügung stehen - sie stellen Funktionen (aber auch Variablen) für best. Routine-Aufgaben zur Verfügung, die man mittels dem use-operator in sein eigenes Skript einbauen kann Frei verfügbare Perl-Module: Standardmodule, die zs. mit dem Perl-Interpreter ausgeliefert werden CPAN-Module, welche im Internet zum Download zur Verfügung stehen Import eines Moduls: use strict; Import eines Teils von einem Modul: use Math::BigInt; 13

Objektorientiertes Programmieren in Perl - unterstützt seit der Version 5.0 - Sammlung von Objekten, die in einer vordefinierten Art&Weise miteinander interagieren - bei Erstellung eines oo-skripts, erzeugt man eine oder mehrere eigene Klassen, die K. und Obj. von anderen Quellen (i.d.r. Module) importieren und verwenden - bei Ausführung des Perl-Skripts werden aus versch. Klassen Laufzeitobjekte erstellt, die untereinander ihre Variablen ändern und ihre jew. Subroutinen aufrufen, um am Ende eine Art von Ergebnis zu liefern - um eine Klasse zu programmieren, also das, wovon sich eine Objektinstanz ableiten lässt, braucht man in Perl ein eigenes Package, also einen eigenen Namensraum - unterstützt Polymorphie 14

Klasse = Paket (Package) - der Namensbereich, der vom Paket definiert wird, definiert die Kapselung und den Gültigkeitsbereich für die Klasse. - wird kein Namensraum bzw. Package angegeben, dann befindet man sich im Default-Package main package serelif; - Unterroutinen ruft man mit dem Namen des Pakets auf gefolgt von :: &main::name_subroutine - ein Package ist allerdings noch nicht automatisch eine Klasse für Objekte - sie muss erst als solche def. und erstellt werden $obj = serelif->new(); 15

Vererbung - Basisklassen werden in Perl über den speziellen Array @ISA (is a ) angegeben - @ISA legt fest, in welchen Klassen nach Methodendefinitionen gesucht wird, wenn die Definiton einer aufgerufenen Methode nicht in der aktuellen Klasse existiert - qw = quoted words, nimmt eine Liste von durch Leerzeichen getrennten Strings entgegen und gibt eine Liste der einzelnen Stringelementen zurück.. # Auto.pm use Fortbewegungsmittel; package Auto; @ISA = qw( Fortbewegungsmittel ); 16

Pattern Matching (Mustererkennung) Muster (pattern): beschreibt eine Menge von Wörtern beschrieben durch regulären Ausdruck Einsatzgebiete: - Eingabe-Validierung - Prüfung, ob die Eingabe in dem korrekten spezifischen Format erfolgt ist - Herausziehen bestimmter Teile einer Datei, die einem bestimmten Kriterium entsprechen - Zerlegung eines Strings auf der Basis bestimmter Trennzeichen-Felder - Feststellen von Unregelmäßigkeiten in einer Datenmenge - Das Zählen der Vorkommen eines Musters in einem String. - Suchen&Ersetzen-Operationen -uvm 17

Reguläre Ausdrücke Code Äquivalente Zeichenklasse Bedeutung / / ( ) Anfang und Ende des regulären Ausdrucks ^ Anfang einer Zeile $ Ende einer Zeile \d [0-9] Alle Ziffern \D [^0-9] Alle Zeichen außer Ziffern \w [0-9a-zA-z_] Alle»Wortzeichen«(alphanumerische Zeichen und _) \W [^0-9a-zA-z_] Alle Zeichen außer»wortzeichen«\s [ \t\n\r\f] Whitespace-Zeichen \S [^ \t\n\r\f] Alle Zeichen außer Whitespace-Zeichen \. sucht nach einem Punkt 18

Beispiel: Eingabenprüfung mit PM while () { print 'Geben Sie eine Zahl ein (0-9): '; chomp($_ = <STDIN>); if (/^\d$/) { # korrekte Eingabe print "Danke!\n"; last; elsif (/^$/) { print "Sie haben nichts eingegeben.\n"; elsif (/\D/) { # keine Zahlen if (/[a-za-z]/) { # Buchstaben print "Sie koennen mich nicht taeuschen. Die Eingabe enthaelt Buchstaben.\n"; elsif (/^-\d/) { # negative Zahlen print "Das ist eine negative Zahl. Bitte nur positive Zahlen!\n"; elsif (/\./) { # Dezimalzahlen print "Das sieht sehr nach einer Dezimalzahl aus.\n"; print "Ich kann Dezimalzahlen nicht in Worten ausgeben. Versuchen Sie eine neue Zahl.\n"; elsif (/[\W_]/) { # andere Zeichen print "huh? Das sieht *wirklich* nicht nach einer Zahl aus\n"; elsif ($_ > 9) { print "Zu gross! 0 bis 9, bitte.\n"; 19

Quellen Literatur PERL in 21 Tagen Laura Lemay Einführung in Perl - Randal L. Schwartz, Tom Christiansen Programmieren lernen mit Perl Joachim Ziegler Webseiten programmieren und gestalten Mark Lubkowitz Internet http://de.selfhtml.org/perl/ http://de.wikibooks.org/wiki/perl-programmierung http://www.mathe2.uni-bayreuth.de/perl/ 20

Vielen Dank für eure Aufmerksamkeit! >>There is more than one way to do it<< Larry Wall