|
Perl 6
Perl 6 Tutorial Part 1: Revision 17
Motivation for a friendly Perl 6-TutorialPerl 6 appears slowly before the wondering eyes of the curious, but if they grab Rakudo and the documentation (aka synopses) and try to write their first program, they often don't get too far. The language changes a bit every week and Rakudo nor Pugs know every command. The synopses aren't an easy read either. They are huge and contain a lot of nifty words. More written to clear edge cases to computer science students than to help the noobs to get a grasp. Therefore we would need a tutorial that introduces the reader slowly into the world of Perl 6 and prerequests as little knowledge as possible. Of course some basic programming skills are needed and some Perl 5 wisdom is helpful, but everything else will be explained on the way. Every chapter of this tutorial is focused on one topic and contains many examples, so you can start to play with the language, which I encourage you to do. Because a start is made quickly but it takes time to really lern Perl and the new generation is optimized even on that. Hello Perl 6Nearly every introduction starts with a "Hello World" example. I tried to come up with something more original, but its still the smallest, simplest program that does something joyfully useful. So let's start with something worn out?, no something well-tried: say "Greetings, earthlings, err Perl 6 neophytes."; Dieses erste Programm gibt doch tatsächlich den genannten Text aus. Der Befehl say entspricht dem bekannten print, fügt aber noch ans Ende der Ausgabe einen Zeilenumbruch an, der dem Standard des aktuellen Betriebssystems entspricht. Klar gibt es 'print' weiterhin, aber zur Gewöhnung wird ab jetzt say verwendet. Ich kann aber bereits die Einwände der erfahreneren Perlschreiber hören: Ein gutes Skript beginnt mit strict und warnings. Und recht haben sie. In Perl 5 müsste das kleine Programm lauten: Perl 5: use strict; print "Greetings, earthlings, err Perl 6 neophytes.\n"; Aber in Perl 6 entfällt das, weil beide Pragmas jetzt standardmäßig aktiviert sind. Das spart nicht nur die 2 Zeilen Code, die in fast allen meiner Programme sind, sondern es hilft jenen, die nichts darüber wissen, potenzielle Probleme eher zu sehen. Bei Bedarf kann ja beides, wie bekannt, mit no strict; und no warnings; abschaltet werden. Runde und geschweifte Klammern
Der nächste Schritt ist in Tutorials oftmals die Einführung von Variablen, denen my $a = 3;
Da Skalare immer noch Variablen sind, die einen einzelnen Wert speichern (egal my $a = 3;
Und hier sehen wir schon einen Unterschied zu Perl 5, der angenehm auffällt. my @primzahlen = 2,3,5,7;
Dies ist auch möglich, weil das Komma jetzt ein listenerzeugender Operator ist. Die Perl 5: eval { print "Finden sie alle 3 Unterschiede !\n" }; Perl 6: try { say "Finden sie alle 3 Unterschiede !" }
Der dritte Unterschied ergab sich, weil =eval= jetzt nur noch Strings auswertet |