From a79afae24fa2c6aa3d3d9316fae552028d678a7b Mon Sep 17 00:00:00 2001
From: Moritz Lenz 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.Perl 6 für Perl 5-Programmierer
Das hier ist ein Versuch, die wichtigsten Änderungen zusammenzufassen, die häufigsten am Anfang, danach grob nach @@ -17,8 +17,8 @@
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$_
als Invocant aufgerufen wird. + Das gleiche gilt für Funktionen wieuc
undlc
:[[[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]]]