Raku-Kurs / Fortgeschritten / Mehr über eingebaute Typen / Quoting-Konstrukte
q, qq und Q
Es gibt drei grundlegende Quoting-Operatoren, die sich darin unterscheiden, wie viel sie den Text im Inneren verarbeiten:
q— wie einfache Anführungszeichen: fast alles ist wörtlichqq— wie doppelte Anführungszeichen: Variablen und Escape-Sequenzen werden interpoliertQ— die wörtlichste Form von allen: nichts wird verarbeitet
Jeder nimmt den Text zwischen einem Paar von Trennzeichen. Das
vertraute '…' ist eine Kurzform für q, und
"…" ist eine Kurzform für qq:
my $name = 'Anna';
say q{Hello $name}; # Hello $name
say qq{Hello $name}; # Hello Annaq lässt $name unberührt; qq
interpoliert es. Backslash-Escape-Sequenzen wie \n
verhalten sich genauso: Nur qq (und "…")
wandelt \n in einen echten Zeilenumbruch um, während sowohl
q als auch Q es als die zwei Zeichen
\ und n belassen:
say qq{line\nbreak}; # line<newline>break
say q{line\nbreak}; # line\nbreak
say Q{line\nbreak}; # line\nbreakWo unterscheiden sich dann q und Q?
q verarbeitet, wie einfache Anführungszeichen, noch eine
kleine Menge von Escape-Sequenzen — ein verdoppelter Backslash
\\ wird zu einem, und du kannst das schließende
Trennzeichen escapen — während die einfache Q-Form
gar nichts verarbeitet:
say q{a\\b}; # a\b — q collapses the escaped backslash
say Q{a\\b}; # a\\b — Q keeps both charactersDu kannst beliebige Trennzeichen wählen — q{…},
q[…], q/…/, q!…! — was praktisch
ist, wenn der Text selbst Anführungszeichen enthält. Die drei Operatoren
sind die Grundlage; das nächste Thema zeigt, wie Adverbien es dir
ermöglichen, genau die gewünschten Funktionen zu kombinieren.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Quoting-Konstrukte | Quiz — Quoting →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.