diff options
Diffstat (limited to 'de-de/perl-de.html.markdown')
| -rw-r--r-- | de-de/perl-de.html.markdown | 169 | 
1 files changed, 169 insertions, 0 deletions
| diff --git a/de-de/perl-de.html.markdown b/de-de/perl-de.html.markdown new file mode 100644 index 00000000..fd8fb3c4 --- /dev/null +++ b/de-de/perl-de.html.markdown @@ -0,0 +1,169 @@ +--- +language: perl +filename: learnperl-de.pl +contributors: +    - ["Korjavin Ivan", "http://github.com/korjavin"] +translators: +    - ["Martin Schimandl", "http://github.com/Git-Jiro"] +lang: de-de +--- + +Perl 5 ist eine sehr mächtige, funktionsreiche Programmiersprache mit über 25 Jahren Entwicklungsgeschichte. + +Perl 5 läuft auf über 100 Platformen von portablen Geräten bis hin zu Mainframes. Perl 5 ist geeignet für Rapid-Prototyping und auch groß angelegte Entwicklungs-Projekte. + +```perl +# Einzeilige Kommentare beginnen mit dem # Symbol. + + +#### Perl Variablen Typen + +#  Variablen beginnen mit einem Sigil, das ist ein Symbol das den Typ anzeigt. +#  Ein erlaubter Variablen-Name beginnt mit einem Buchstaben oder einem +#  Unterstrich, gefolgt von beliebig vielen weiteren Buchstaben, Zahlen und +#  Unterstrichen. + +### Perl hat drei Haupt-Typen von Variablen: $scalar, @array, und %hash. + +## Scalare +#  Ein Scalar repräsentiert einen einzelnen Wert: +my $animal = "camel"; +my $answer = 42; + +# Scalare Werte könnne Zeichenketten, Ganzzahlen und Gleitkomma-Zahlen sein. +# Perl convertiert automatisch zwischen diesen Werten wenn nötig. + +## Arrays +#  Ein Array repräsentiert eine Liste von Werten: +my @animals = ("camel", "llama", "owl"); +my @numbers = (23, 42, 69); +my @mixed   = ("camel", 42, 1.23); + + + +## Hashes +#   Ein Hash representiert ein Set von Schlüssel/Wert Paaren: + +my %fruit_color = ("apple", "red", "banana", "yellow"); + +#  Man kann Leerzeichen und den "=>" Operator verwenden um sie schön darzustellen: + +my %fruit_color = ( +  apple  => "red", +  banana => "yellow", +); +# Scalare, Arrays und Hashes sind in perldata sehr genau dokumentiert. +# (perldoc perldata) + +# Komplexere Daten-Typen können mit hilfe von Referenzen konstruiert werden. +# Dies erlaubt das erstellen von Listen und Hashes in Listen und Hashes. + +#### Bedingte Ausführungs- und Schleifen-Konstrukte. + +# Perl besitzt die üblichen Bedingte Ausführung- und Schleifen-Konstrukte + +if ($var) { +  ... +} elsif ($var eq 'bar') { +  ... +} else { +  ... +} + +unless (condition) { +  ... +} +# Dies ist die etwas leserliche Version von "if (!Bedingung)" + +# Die Perl-Eigene Post-Bedingungs-Schreibweise +print "Yow!" if $zippy; +print "We have no bananas" unless $bananas; + +#  while +while (condition) { +  ... +} + + +# Für Schleifen und Iterationen +for (my $i = 0; $i < $max; $i++) { +  print "index is $i"; +} + +for (my $i = 0; $i < @elements; $i++) { +  print "Current element is " . $elements[$i]; +} + +for my $element (@elements) { +  print $element; +} + +# Implizite Iteration +for (@elements) { +  print; +} + +# Die Perl-Eigene Post-Bedingungs-Schreibweise nochmals +print for @elements; + +#### Reguläre Ausdrücke + +# Die Unterstützung von Perl für reguläre Ausdrücke ist weit und tiefgreifend. +# Sie ist ausführlich in perlrequick, perlretut und sonstwo dokumentiert. +# Die Kurzfassung: + +# Einfaches Vergleichen +if (/foo/)       { ... }  # Wahr wenn "foo" in $_ enthalten ist +if ($a =~ /foo/) { ... }  # Wahr wenn "foo" in $a enthalten ist + +# Einfache Substitution + +$a =~ s/foo/bar/;         # Ersetzt foo mit bar in $a +$a =~ s/foo/bar/g;        # Ersetzt ALLE VORKOMMNISSE von foo mit bar in $a + + +#### Dateien und Ein-/Ausgabe + +# Dateien werden mit der "open()" Funktion zur Ein- oder Ausgabe geöffnet. + +open(my $in,  "<",  "input.txt")  or die "Can't open input.txt: $!"; +open(my $out, ">",  "output.txt") or die "Can't open output.txt: $!"; +open(my $log, ">>", "my.log")     or die "Can't open my.log: $!"; + +# Von einem geöffneten Datei-Handle kann mit dem "<>" Operator gelesen werden. +# In einem Scalaren-Kontext liest man damit eine einzelnen Zeile vom Datei-Handle. +# In einem Listen-Kontext wird damit die komplette Datei eingelesen. Dabei +# entspricht jede Zeile einem Element der Liste: + +my $line  = <$in>; +my @lines = <$in>; + +#### Schreiben von Subroutinen + +# Subroutinen schreiben ist einfach: + +sub logger { +  my $logmessage = shift; + +  open my $logfile, ">>", "my.log" or die "Could not open my.log: $!"; + +  print $logfile $logmessage; +} + +# Nun können wir die Subroutine genau wie eine eingebaute Funktion verwenden: + +logger("We have a logger subroutine!"); +``` + +#### Verwenden von Perl Modulen + +Perl Module liefern eine Menge an Funktionen die dabei Helfen das Rad nicht neu erfinden zu müssen. Perl Module können von CPAN (http://www.cpan.org/) heruntergeladen werden. Einige populäre Module sind in der Perl Distribution selbst bereits enthalten. + +Perlfaq enthält Fragen und Antworten zu häufig vorkommenden Aufgaben. Sehr oft sind auch Vorschläge enthalten welches CPAN module am besten geeignet ist. + +#### Weiterführende Literatur + + - [perl-tutorial](http://perl-tutorial.org/) + - [Learn at www.perl.com](http://www.perl.org/learn.html) + - [perldoc](http://perldoc.perl.org/) + - in Perl eingebaut : `perldoc perlintro` | 
