Perl 字符串转义序列,在上一个教程中,我们学习了如何使用 Perl 中的字符串。在本指南中,我们将讨论转义字符,它将帮助我们在某些情况下实现所需的输出。
在 Perl 中显示电子邮件地址
字符@
在 perl 中有特殊含义。正如我们已经知道的那样,当我们将特殊字符放在双引号字符串中时,perl 会尝试对其进行插值。在下面的示例中,如果我们不在@
之前放置反斜杠,则会抛出错误而不是显示电子邮件,因为它会将@gmail
视为数组。
在单引号的情况下,不需要使用转义序列,因为插值不会出现在单引号字符串中。
use strict;
use warnings;
my email = "xyz\@gmail.com";
print "email\n";
# no backslash needed as interpolation does not
# work in single quotes.
my email2 = '[email protected]';
print "email2\n";
输出:
[email protected]
[email protected]
转义双引号字符串中的$
符号
我们已经知道美元符号会插入变量的值。如果你想转义$
符号并避免插值,请使用我们上面做的相同技巧 – 用反斜杠作为前缀。
use strict;
use warnings;
my name = 'Negan';
mymsg = 'I am Negan';
# escaping the first dollar sign but not escaping the second
print "\name:name\n";
# escaping the first dollar sign but not escaping the second
print "\msg:msg\n";
输出:
$name: Negan
$msg: I am Negan
如何转义转义字符反斜杠(\
)
在上面的例子中,我们使用反斜杠来转义特殊字符$和@。可能存在您希望在输出中显示反斜杠的情况。为此,你想要逃避反斜杠。让我们举个例子来理解这个:
use strict;
use warnings;
my say = 'I do like to use backslash \\';
print "say\n";
输出:
I do like to use backslash \
如您所见,我们在输出中显示了\
。
转义字符串中的双引号
我们知道双引号内的文本在 Perl 中被视为字符串。让我们说我们想在 Perl 中显示一个字符串,字符串本身有一个双引号。我们将使用相同的方法,使用\
来转义引号。
use strict;
use warnings;
my say = "I like to watch \"The Walking Dead\"";
print "say\n";
输出:
I like to watch "The Walking Dead"
双q
运算符 – qq
我们可以用双q
运算符替换用于包含字符串的双引号。这样做的好处是我们不必担心使用双引号("
)和括号的转义序列。
use strict;
use warnings;
my name = 'Chaitanya';
print qq(My name is "name" and I like brackets ()\n);
输出:
My name is "Chaitanya" and I like brackets ()
请参阅我没有使用双引号和括号的转义序列。
单q
运算符 – q
单q
运算符就像单引号一样工作。其中存在的特殊字符不进行插值。
让我们采用上面在双q
运算符中看到的相同示例。
use strict;
use warnings;
my name = 'Chaitanya';
print q(My name is "name" and I like brackets ()\n);
输出:
My name is "$name" and I like brackets ()\n