From a79afae24fa2c6aa3d3d9316fae552028d678a7b Mon Sep 17 00:00:00 2001 From: Moritz Lenz Date: Wed, 10 Aug 2011 13:48:57 +0200 Subject: [PATCH] start of an editorial review of p5->p6 tutorial --- source/tutorials/p5/index.html | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/source/tutorials/p5/index.html b/source/tutorials/p5/index.html index f87164e..7bdabcb 100644 --- a/source/tutorials/p5/index.html +++ b/source/tutorials/p5/index.html @@ -5,7 +5,7 @@

Perl 6 für Perl 5-Programmierer

Trotz vieler Änderungen von p5 zu p6 ist auch vieles gleich geblieben, was es alt eingesessenen Perl 5-Programmieren sicher - leichter macht Perl 6 zu lernen als anderen.

+ leichter macht als anderen, Perl 6 zu lernen.

Das hier ist ein Versuch, die wichtigsten Änderungen zusammenzufassen, die häufigsten am Anfang, danach grob nach @@ -17,8 +17,8 @@

Verschiedenes

sind Einzeiler die mit perl -e '$code' ausgeführt werden.

-

Für Objektmethoden gibt es jetzt die .-Notation (anstelle - von ->), die meisten Builtins sind jetzt Methoden:

+

Für Methodenaufrufe gibt es jetzt die .-Notation (anstelle + von ->), die meisten Builtins sind jetzt auch Methoden:

[[[syntax perl6]]]
 my @list;
@@ -26,8 +26,8 @@ 

Verschiedenes

"foo".print; # wie print "foo"; [[[endsyntax]]]

Die alte Notation ist immer noch unterstützt.

-

Wenn man bei Methoden (also Funktionen, die zu einem Objekt gehören), - die Klammern weglassen will, braucht man einen Doppelpunkt:

+

Wenn man beim Aufruf Methoden (also Routinen, die zu einem Objekt gehören) + mit Argumenten, die Klammern weglassen will, braucht man einen Doppelpunkt:

[[[syntax perl6]]]
 @list.push: 'foo';
@@ -53,11 +53,11 @@ 

Sigils, Arrays und Hashes

Allerdings bleibt bei Arrays und Hashes der Sigil beim Zugriff auf Elemente erhalten:

[[[syntax perl6]]]
-my @list = 1, 3, 5, 1, 2;
-my %hash = (
-    'foo' => 'bar',
-    'baz' => 'qox',
-    );
+my @list = 1, 3, 5, 1, 2; # keine Klammern noetig
+my %hash =
+    foo => 'bar',
+    baz => 'qox',
+    ;
 @list[0];        #früher: $list[0]
 %hash{'foo'};    #früher: $hash{'foo'}
 %hash;      #früher: $hash{foo}
@@ -101,7 +101,6 @@ 

Sigils, Arrays und Hashes

elems:

[[[syntax perl6]]]
-# man beachte, dass hier keine Klammern mehr nötig sind:
 my @list = 1, 2, 4, 5;
 
 my $num = @list.elems;            # früher: scalar @list;
@@ -197,7 +196,9 @@ 

Die Standardvariable $_

for-Schleifen ohne eine explizite Variable benutzen auch weiterhin $_ als Standard, allerdings wird sie niemals von Funktionen wie print als Default verwendet. Dazu braucht - man ein .print. Das gleiche gilt für Funktionen wie + man ein .print -- der Punkt zeigt an, dass die Methode mit + $_ als Invocant aufgerufen wird. + Das gleiche gilt für Funktionen wie uc und lc:

[[[syntax perl6]]]
@@ -234,7 +235,8 @@ 

Die Standardvariable $_

Funktionen

Funktionen werden immer noch mit sub-Keyword - deklariert, und können jetzt Parameterdeklarationen enthalten wie in + deklariert, und können jetzt Parameterdeklarationen (Signatur + genannt) enthalten wie in den meisten anderen Programmiersprachen.

[[[syntax perl6]]]