Die < >
hat Vorrang vor dem Begriff. Hier ist die example from the docs:Haben alle Zitationskonstrukte von Perl 6 Vorrang vor Begriffen?
say <a b c>[1];
Ich dachte, die gleiche Priorität zu allen der Angabe Betreiber gelten. Dies funktioniert:
my $string = '5+8i';
my $number = <<$string>>;
say $number;
Diese interpoliert $string
und schafft allomorphes (in diesem Fall ein ComplexStr):
(5+8i)
Aber, wenn ich zu indizieren wie das Beispiel aus der Dokumentation versuchen, es funktioniert nicht kompilieren:
my $string = '5+8i';
my $number = <<$string>>[0];
say $number;
Ich bin nicht ganz sicher, was Perl 6 denkt, passiert hier. Vielleicht ist es denkt es ein hyperoperator ist:
===SORRY!=== Error while compiling ...
Cannot use variable $number in declaration to initialize itself
at /Users/brian/Desktop/scratch.pl:6
------> say $⏏number;
expecting any of:
statement end
statement modifier
statement modifier loop
term
ich die Variable überspringen kann:
my $string = '5+8i';
say <<$string>>[0];
Aber das ist ein anderer Fehler, der nicht die Schließung Anführungszeichen finden:
===SORRY!=== Error while compiling ...
Unable to parse expression in shell-quote words; couldn't find final '>>'
at /Users/brian/Desktop/scratch.pl:8
------> <BOL>⏏<EOL>
expecting any of:
statement end
statement modifier
statement modifier loop
ein anderer Datenpunkt: '<<"$string">> [0]' funktioniert wie erwartet – Christoph
In der Tat. Die '' 'sind nur ein weiterer Weg, um zu verhindern, dass der Parser in die >>.' Cul-de-sac gelangt. –