Übersicht || 0:Vor | 1:Ge | 2:Theo | 3:Var | 4: Operatoren | 5: Ein- und Ausgabe | 6: Ablaufstrukturen | 7:Sub | 8:OOP | 9:Rx || A:Index | B:Tab | C:Tour | D:Delta | E:Links

Interpolation

Bestimmte Operatoren können Daten in den Stringkontext überführen, aber Text kann auch direkt in den Quellcode eingefügt werden, wenn er durch Anführungszeichen als solcher markiert ist. Neben den einfachen und doppelten Anführungszeichen (die fast unverändert geblieben sind) kennt Perl 5 noch eine Reihe weiterer Quotingoperatorn ( q, qq, qw, qx). Natürlich sind hier neue Möglichkeiten hinzugekommen und auch hier wurde alles auf eine gemeinsame vereinheitlichte Basis gesetzt, auf der alles aufbaut. Der allgemeine Quotingoperator heißt Q, darf wie gewohn beliebige Klammerzeichen verwenden und Q /.../ interpoliert rein gar nichts. Wirklich nichts.

Einfaches Quoting

Wie in Perl 5 werden auch in Perl 6 die Anführungszeichen zum Quoting benutzt. Einfache Anführungszeichen ('') dienen weiterhin zum Einfassen von Text der wörtlich (literal) so übernommen wird wie er im Quelltext zu lesen ist. Einzige Ausnahmen sind \' (falls man ein ' im Text haben will und nich schon sein Ende) und \\ (falls man \ möchte und nicht ein ' quoten).

siehe auch: Steuerzeichen und Quoting Ops

''
""
<>
<<>> 

Evaluierung

Was in Perl 5 noch mit ``

Reguläre Ausdrücke

Heredocs

:to

Formate

Wandern aus dem Sprachkern in ein Modul.

Befehlszeile

Eingabe

$*IN heisst der neue Name von STDIN (siehe AnhangB) da es eine globale Variable (Twigil "*") ist, zumindest aus sicht des Perlbenutzers. Eines einfache Eingabe in der Kommandozeile fragt also mit $var = $*IN; ab, wobei


Ausgabe

print arbeitet wie aus Perl 5 bekannt, nur wenn man $_ ausgeben will, muss man schon ".print" sagen, da nur "print;" genau das macht wonach es aussieht: nichts ausgeben. Desweiteren wurde ein say ausgeknobelt (oder aus REXX importiert) welches einem print mit angefügten "\n" entspricht und bereits nach Perl 5.10 zurückportiert wurde. printf

Dateien

Dateitestoperatoren

Brave Programmierer testen zuerst die Existenz einer Datei bevor sie versuchen sie zu öffnen. Auch die Ausführbarkeit oder andere Eigenschaften sind besser vorher in Erfahrung zu bringen. Diese Operationen sind äußerlich und wesentlich gleich geblieben, nur daß sie nicht nicht mehr mit "-" sondern mit ":" am Anfang geschrieben werden. Geprüft werden können nach wie vor Strings oder Variablen die den Dateinamen enthalten. Und geprüft wird mit dem Smartmatch-Operator:
    $datei ~~ :e
oder in der OOP-Form:
    "Datei.name".:X
Neu und schön ist an dem Thema, daß mehrfache Prüfungen nun einfacher sind. Entweder als Junctions oder öber eine Methode eines internen Ojektes, das mehrere Paarameter akzeptiert.
    if -$dateiname ~~ :r & :w & :x  {...}
    if $dateiname.TEST(:e, :x) {...}
Eine vollständige Liste aller Operatoren ist in AnhangB.

Ein- und Ausgabe

Dateihandler sind jetzt einfache Objekte die in Skalaren gespeichert werden. Existiert eine Datei, wird sie einfach wie gewohnt mit open geöffnet und mit close geschlossen.
    $filehandler = open "datei.name";
    $filehandler = open "datei.name", :r; #dito
    close $filehandler;
Wie einfach zu erraten, wird der Modus in dem die Datei geöffnet wird mit einem Parameter wie :r (read - nur lesen), :w (write - [über]schreiben), :rw und :a (append - anfügen) angegeben. Im ersten Beispiel kann das :r auch weggelassen werden, da es die Defaulteinstellung ist. Auch die Befehle read und readline arbeiten nur in nuancen anders als bisher, da Perl 6 eine erweiterte Kontextsensitivität hat. Meist wurde aber anstatt readline FILEHANDLER; jedoch verwendet wofür es jetzt den Iteratonsoperator gibt.
    $FH = open "datei.name";
    for =$FH {
        say $_; #die aktuelle Zeile
Der einfachste Weg an den Inhalt einer Datei zu kommen ist aber "slurp", welches sicher durch File::Slurp inspiriert wurde. Es öffnet liest und schließt die Datei in einem Befehl. Im Arraykontext liefert es den Inhalt zeilenweise.
    $dateiinhalt = slurp "datei";
    @dateizeilen = slurp "datei";

Verzeichnisse

Zufallswerte


Übersicht || 0:Vor | 1:Ge | 2:Theo | 3:Var | 4: Operatoren | 5: Ein- und Ausgabe | 6: Ablaufstrukturen | 7:Sub | 8:OOP | 9:Rx || A:Index | B:Tab | C:Tour | D:Delta | E:Links

-- HerbertBreunung - 13 Nov 2007
Topic revision: r67 - 2009-12-03 - 00:41:45 - HerbertBreunung
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.