Übersicht ||
0:Vor |
1:Ge |
2:Theo |
3:Var |
4:Op |
5:IO |
6:{} |
7:Sub |
8:OOP |
9:Rx ||
A:Index |
B:Tab |
C:Tour |
D: Delta |
E:Links
Dies ist eine Zusammenfassung was Umsteigern von Perl 5 zu Perl 6 besonders beachten solllten.
Änderungen
- use strict und warnings sind per default an
- konsistente Sigils: also @array[1] anstatt $array[1] und %hash{'key'} anstatt $hash{'key'} oder @hash{'key', 'key2'}
- Arrays, Hashes, Formate, Dir und Filehandler sind intern Objekte mit prozeduralem Interface und werden in Skalaren gespeichert.
- Spezialvariablen haben eignen Namespace $*VARNAME und $?VARNAME, auch Token sind da zu finden
- Methoden: . statt -> : Objekt.methode;
- Strings verbingen: ~ statt . : $string = 'Shinmen Musahashi: ' ~ 'Sho Rin No Sho';
- smartmatch (Regex und mehr): ~~ statt =~
- < ... > statt qw{ ... }: interpolierend << ... >>
- Ternärer Operator: ?? ... !! ... statt ? ... : ...
- kein foreach mehr, for iteriert nur noch über Arrays
- c-style schleife: loop ( ; ; ) statt for ( ; ; )
- nachgestellte schleife: repeat { ... } while ... ; statt do { ... } while (...);
- definier Klassen mit
class und Module mit module
- keine Sourcefilter mehr, nimm Macros
- keine Referenzen mehr, binde Variablen über Symboltabelle
Neues
- neue Kontexte: hashlist, lazy list, bool, int, num, string
- optionale Typisierung, Traits (Variableneigenschaften), Binding
- loop und say befehl
- zip, err, yadda und pipe operatoren
- Hyper / Reduction Operatoren
- verkettete Vergleiche / Operatoren
- case Anweisung mit given und when
- junctions : if $a = 1|2|3
- Currying
- Smart Match / Rules (Regex++, eigene Sprache in der Sprache wie in Rebol)
- benannte Parameter für Subroutinen, Multimethoden, Coroutinen
- mehr explizites OOP:
- autogenerierte getter/setter
- Roles (ähnlich Rubys Mixins, o. Javas Interfaces)
- Delegation, Design by Contract (Eiffel)
- Exceptions, Continuations
- Macros
Natives
- keine runde Klammern mehr notwendig nach if, unless, while ...
0:Vor |
1:Ge |
2:Theo |
3:Var |
4:Op |
5:IO |
6:{} |
7:Sub |
8:OOP |
9:Rx ||
A:Index |
B:Tab |
C:Tour |
D: Delta |
E:Links
--
GwenDragon - 03 May 2006