Der nicht interpolierte Angebotsoperator q{}
wird Ihnen den größten Teil des Weges dorthin bringen. Es gibt nur ein paar subtile Unterschiede.
delimiters
Es gibt vier Trennzeichen mit Python rohen Stringliterale verwendet:
r"..."
und r'...'
r"""..."""
und r'''...'''
Die q...
Operator in Perl hat eine größere Vielfalt von Trennzeichen
- Gekoppelte delimiters
q(...)
, q[...]
, q<...>
, q{...}
- Regular delimiters andere nicht-alphanumerisch sein kann, 7-Bit-ASCII-Zeichen:
q"..."
, q/.../
, q#...#
, usw.
der Backslash
der Backslash char acter \
wird immer als Literal-Backslash-Zeichen in Python-Roh-Literal-Strings interpretiert. Es wird auch ein Zeichen entgehen, die sonst als Endbegrenzer des Strings
r'Can\'t believe it\'s not butter' => Can\'t believe it\'s not butter
Der umgekehrte Schrägstrich \
in einem Perl q{...}
Ausdruck interpretiert werden würde, ist auch ein Backslash mit zwei Ausnahmen:
Der Backslash geht einem Begrenzungszeichen
q<18 \> 17 \< 19> => 18 > 17 < 19
q#We're \#1# => We're #1
Der umgekehrte Schrägstrich steht vor einem anderen umgekehrten Schrägstrich. In diesem Fall wird die Folge von zwei umgekehrten Schrägstrichen als ein einzelner umgekehrter Schrägstrich interpretiert.
q[single \ backslash] => single \ backslash
q[also a single \\ backslash] => single \ backslash
q[double \\\ backslash] => double \\ backslash
q[double \\\\ backslash] => double \\ backslash
Es gibt einen Weg, um ein wirklich "raw" String in Perl zu erstellen: Ein einzelnes zitierte hier-doc.
my $string = <<'EOS';
'"\\foo
EOS
Dadurch wird die Zeichenfolge '"\\fooNEWLINE
erstellt.
(So ist es möglich, eine einzelne rohe Stringliteral in Python zu erstellen, die sowohl '''
und """
enthält?)
Nun, wenn Sie einen _command_ möchten, können Sie 'q' und' qq' verwenden, um Stringliterale zu konstruieren in Perl. Siehe http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators – simbabque
'\' ist jedoch sowohl in 'q' als auch in' qq' etwas Besonderes, daher gibt es keine direkte Übereinstimmung mit Pythons r'. – choroba