Perl 的字符串直接量分为两种:单引号内的和双引号内的。单引号与双引号最大的区别在于单引号限制了转义字符的功能,但是又存在一些例外。

比如字符串 fred 用单引号字符串直接量表示为

'fred'

也可以用单引号直接量表示一个空字符串

''

单引号作为字符串的分界符,其具有特别的含义,但有些字符串中需要它,比如 Don't be late . 如果表示为

'Don't be late.'

就错了,Perl 会将第一个和第二个单引号作为分界符,Don 后面的字符都被忽略了。这个时候就需要用反斜杠去转义单引号:

'Don\'t late.'

转义单引号会带来另外一个问题,比如字符串 ABC\,表达成单引号字符串直接量为

'ABC\'

根据前面所说,这样写的话,第二个单引号会被反斜杠转义,因而这个单引号直接量没有结束标识。为了解决这个问题,应该让反斜杠转义反斜杠

'ABC\\'

由此,在单引号内反斜杠可以转义的字符只有单引号以及反斜杠。

'Hello\n'

将表示长度为 7 的字符串 Hello\n

'\'\\'

将表示长度为 2 的字符串 '\