Wie zum verketten von Variablen in Perl?
Gibt es eine andere Möglichkeit zum verketten von Variablen in perl? Ich habe versehentlich schrieb die folgende Zeile des Codes:
print "$linenumber is: \n" . $linenumber;
Und geführt, Ausgabe:
22 is:
22
Ich erwartet hatte:
$linenumber is:
22
Also dann, fragte ich mich. Es muss die Interpretation der $linenumber
im doppelten Anführungszeichen als Verweis auf die variable. (wie cool!)
Ich Frage mich nur: Was sind die Vorsichtsmaßnahmen bei der Verwendung dieser Methode und könnte mir jemand erklären, wie das funktioniert?
Technisch brauchen Sie nicht, um die Variablen zu verketten, als
print
können mehr als ein argument. print '$linenumber is: \n', $linenumber;
so gut funktioniert. (Obwohl Sie müssen sich bewusst sein, die built-in variable $,
(siehe man perlvar
).'$linenumber is: \n'
ist nicht zu tun, was Sie wollen 🙂InformationsquelleAutor kentcdodds | 2012-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Variable interpolation tritt auf, wenn Sie doppelte Anführungszeichen verwenden. So, Sonderzeichen müssen escaped werden. In diesem Fall müssen Sie die Flucht der
$
:Kann wie folgt umgeschrieben werden:
Zu vermeiden, string interpolation, verwenden Sie einfache Anführungszeichen:
Wenn interpolierende Variablen und der name der Variablen Grenze ist nicht eindeutig (z.B.
"my $page = 12; print "$pagep."
), die Sie benötigen, schließen Sie den Variablennamen in geschweifte Klammern${...}
. I. e.print "${page}p."
InformationsquelleAutor Alan Haggai Alavi
Ich mag
.=
- operator-Methode:InformationsquelleAutor Zon
In Perl einen beliebigen string, der mit doppelten Anführungszeichen interpoliert sein, so dass jede variable wird durch Ihren Wert ersetzt. Wie viele andere Sprachen, wenn Sie zum drucken eine
$
Sie haben, um es zu entkommen.ODER
ODER
Scalar Interpolation
InformationsquelleAutor Hameed
Wenn Sie den code ändern aus
zu
oder
gibt es
Was ich nützlich finden, wenn Sie wollen, drucken Sie den Namen einer Variablen ist die Verwendung von single quotes, so dass die Variablen nicht übersetzt werden in Ihrem Wert, wodurch der code leichter zu Lesen.
InformationsquelleAutor Joe W
können Sie den umgekehrten Schrägstrich die
$
zu drucken, die es wörtlich.druckt, was Sie erwartet hatten. Sie können auch verwenden Sie einfache Anführungszeichen, wenn Sie nicht wollen, perl Interpolation von Variablen-Namen, aber dann die
"\n"
werden interpoliert wahrsten Sinne des Wortes.das problem bei der Verwendung von einfachen Anführungszeichen (wie Sie vorgeschlagen) interpretiert wird newline wörtlich, siehe mein edit.
InformationsquelleAutor John Corbett
Bei der Formulierung dieser Antwort, fand ich diese Webseite die erklärt, dass die folgenden Informationen:
Dachte ich, das wäre hilfreich für die community, so dass ich diese Frage und die Beantwortung meiner eigenen Frage. Weitere hilfreiche Antworten sind mehr als willkommen!
InformationsquelleAutor kentcdodds