多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Perl 字符串转义序列 > 原文: [https://beginnersbook.com/2018/03/perl-string-escape-sequences/](https://beginnersbook.com/2018/03/perl-string-escape-sequences/) 在上一个教程中,我们学习了[如何使用 Perl 中的字符串](https://beginnersbook.com/2018/03/perl-strings/)。在本指南中,我们将讨论**转义字符**,它将帮助我们在某些情况下实现所需的输出。 ## 在 Perl 中显示电子邮件地址 字符`@`在 perl 中有特殊含义。正如我们已经知道的那样,当我们将特殊字符放在双引号字符串中时,perl 会尝试对其进行插值。在下面的示例中,如果我们不在`@`之前放置反斜杠,则会抛出错误而不是显示电子邮件,因为它会将`@gmail`视为[数组](https://beginnersbook.com/2017/05/perl-lists-and-arrays/)。 在单引号的情况下,不需要使用转义序列,因为插值不会出现在单引号字符串中。 ```perl 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"; ``` 输出: ```perl [email protected] [email protected] ``` ## 转义双引号字符串中的`$`符号 我们已经知道美元符号会插入变量的值。如果你想转义`$`符号并避免插值,请使用我们上面做的相同技巧 - 用反斜杠作为前缀。 ```perl use strict; use warnings; my $name = 'Negan'; my $msg = '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"; ``` 输出: ```perl $name: Negan $msg: I am Negan ``` ## 如何转义转义字符反斜杠(`\`) 在上面的例子中,我们使用反斜杠来转义特殊字符$和@。可能存在您希望在输出中显示反斜杠的情况。为此,你想要逃避反斜杠。让我们举个例子来理解这个: ```perl use strict; use warnings; my $say = 'I do like to use backslash \\'; print "$say\n"; ``` 输出: ```perl I do like to use backslash \ ``` 如您所见,我们在输出中显示了`\`。 ## 转义字符串中的双引号 我们知道双引号内的文本在 Perl 中被视为字符串。让我们说我们想在 Perl 中显示一个字符串,字符串本身有一个双引号。我们将使用相同的方法,使用`\`来转义引号。 ```perl use strict; use warnings; my $say = "I like to watch \"The Walking Dead\""; print "$say\n"; ``` 输出: ```perl I like to watch "The Walking Dead" ``` ## 双`q`运算符 - `qq` 我们可以用双`q`运算符替换用于包含字符串的双引号。这样做的好处是我们不必担心使用双引号(`"`)和括号的转义序列。 ```perl use strict; use warnings; my $name = 'Chaitanya'; print qq(My name is "$name" and I like brackets ()\n); ``` 输出: ```perl My name is "Chaitanya" and I like brackets () ``` 请参阅我没有使用双引号和括号的转义序列。 ## 单`q`运算符 - `q` 单`q`运算符就像单引号一样工作。其中存在的特殊字符不进行插值。 让我们采用上面在双`q`运算符中看到的相同示例。 ```perl use strict; use warnings; my $name = 'Chaitanya'; print q(My name is "$name" and I like brackets ()\n); ``` 输出: ```perl My name is "$name" and I like brackets ()\n ```