Diese geheime Syntax ist als reich verziertes Doppelklingenschwert bekannt und wird typischerweise bezeichnet als:
<<m=~m>>
Comments here
m
;
Es ist ein Hack für mehrzeilige Kommentare, bei dem die Heredoc- Syntax und der Match-Operator ( =~
) mit verwendet werden>
als Trennzeichen verwendet werden.
Beachten Sie, dass Schrägstriche /
nicht als Trennzeichen für den Abgleich verwendet werden. Der Operator 'm' ist erforderlich. Zum Beispiel $my_var =~ /test/
ist äquivalent zu $my_var =~ m>test>
, während$my_var =~ >test>
ungültig wäre.
Achten Sie auf die Tatsache , dass das erste m
Zeichen in Ihrem Schnipsel durch einfache Anführungszeichen eingeschlossen ist, was bedeutet , die $a
und $b
Variablen werden nicht interpoliert werden. Wären diese Anführungszeichen weggelassen worden (gemäß meinem bereitgestellten Codebeispiel), würde Perl dem Endmarker automatisch doppelte Anführungszeichen hinzufügen und alle nachfolgenden Variablen würden interpoliert. Dies würde Probleme verursachen, wenn $a
und $b
nicht mehr definiert sind und Sie verwenden use warnings;
.
Um das obige Beispiel mit verzierten Doppelklingen verständlicher zu machen (aber immer noch nicht empfohlen), könnten wir schreiben:
<<"END" =~ //
Comments here
END
;
Beachten Sie, dass das =~ //
redundant ist. Dies entspricht also:
<<"END";
Comments here
END
Dies ist nur die Standard-Heredoc-Syntax im ungültigen Kontext.
Ich würde nicht empfehlen, dies im Produktionscode zu verwenden, da eine Zeichenfolge im ungültigen Kontext Probleme verursachen kann. Außerdem ist dieser Code selbst für die erfahrensten Perl-Programmierer ein Kratzer und sinnlos schwer zu lesen und zu warten! Wenn Sie richtige mehrzeilige Kommentare erstellen möchten, würde ich empfehlen, wie hier erläutert am Pod festzuhalten Wie gebe ich einen mehrzeiligen Kommentar in Perl ein?
Hoffe das klärt es auf.