string.rakumod

# Literal Strings Q'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q^text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text^; Q｢｢text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text｣｣; Q｟text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text｠; # Distinguishing <word lists> and smaller < than. True if 5 > 7; asdf < q >; $x < q > x; $x = < q >; a(<5>); $x.a: <5>; # Escaping q'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \' \n text'; 'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \' \n text'; # Interpolation qq'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \' \n text'; "text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \" \n text"; # Word Quoting qw'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; <text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text>; # Word Quoting with Quote Protection qww'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; # Word Quoting with Interpolation qqw'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; # Word quoting with Interpolation and Quote Protection qqww'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; «text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text»; <<text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text>>; # Shell Quoting qx'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; # Shell Quoting with Interpolation qqx'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; # Adverbs Q:s'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:a'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:h'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:f'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:c'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:b'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:q'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:qq'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; Q:x:w:ww:q:qq:s:a:h:f:c:b:v'text $scl @arr %hsh &sub($stuff) {if 5 < 4 { $code }} \qq[$stuff] \n text'; # Heredocs my ($first, $second) = q:to/END1/, qq:to/END2/; FIRST MULTILINE \n $var STRING END1 SECOND MULTILINE \n $var STRING END2 # Weird terminator delimiters and interpolation stuff. if True { $text = qq:to<<<<EOT>>>>; Type: {$symbol.type} Concrete: {$symbol.concrete} Container: {$symbol.container} Metadata: {$symbol.metadata.keys.sort.map(-> $k {" $k: {$symbol.metadata{$k}}"}).join("\n")} EOT } else { $text = qq:to|EOT|; Kind: {$symbol.kind} Value: {$symbol.value} EOT }