一、Perl中的字符串:
Perl中有三种字符串:双引号字符串、单引号字符串和反引号字符串;
1、双引号字符串(" "):是使用一对双引号括起来的一串字符,其作用类似于C语言中的字符串;使用双引号时,Perl解释器实际上会逐一检查字符串直接数中的每一个字符,看看这个字符是否具有特殊定义,如果有特殊定义,则进行特殊处理,这个操作在Perl中称为变量插值;在双引号字符串中,可以把一个反斜杠放在某一个字符前面,使这个字符成为转义字符;
2、单引号字符串(' '):是使用一对单引号括起来的一串字符。该单引号字符串不是字符串的一部分。单引号开头的字符串告诉Perl解释器停止解释单引号后面的字符,即Perl解释器不再检查构成字符串直接数的字符串中是否有什么特殊字符,这个作用一直持续到Perl解释器遇到下一个单引号为止。单引号对之间的所有字符均看成是字符串直接数。也就是说,单引号让Perl解释器把单引号对之间的所有内容都解释为字符串直接数。此外,单引号让Perl解释器不解释单引号对之间的内容,因此它把单引号对之间的所有内容都直接打印出来。单引号开头的字符串中可以插入任何字符,但有两种情况除外。一种是中间插入单引号,并在前面有一个反斜杠;另一种是字符串中有两个连着的反斜杠。
3、反引号字符串(` `):它告诉Perl解释器对反引号之间的字符串的解析采用完全不同的操作,让Perl解释器把反引号对之间的字符串解释为操作系统命令。如果要早一个程序中执行另一个程序,可以使用反引号对实现。反引号对之间执行的操作系统命令总是返回某种类型的数据。对有些命令,返回的数据只能是表示命令执行成功与否的0、1值;另外一些命令则有可能返回很长的数据列表。返回的数据存放在等号左边的变量中。
二、引用操作符:
Perl提供4种引用运算符:q、qq、qx、qw。这些引用运算符可以代替对应的引号:
运算符 含义 结果 举例 说明
q 单引号 不可插值字符串 print q#My name is $Name.#; (#为分隔符)
qq 双引号 可插值字符串 print qq+My Name is $Name。+; (+为分隔符)
qx 反引号 可插值命令字符串 $Date = qx[date +'%Y-%m-%d %H:%M:%S']; ([]为分隔符)
qw 引用字符串 不可插值字符串 @Name = qw%(Jack, Marry, Smith)%; (%为分隔符)
引用操作符的用法比较简单,每个引用操作符作用于其后面的分隔符之间的字符串上;分隔符是引用操作符后面的第一个非字母、非数字字符,但空格不能作为分隔符。分隔符总是成对出现,开始分隔符与结束分隔符相同,分隔符可以使用任意的非字母、非数字字符对,它表示字符串的开始和结束。
三、特殊字符串:
Perl中提供了一种特殊的输出字符串的方法,那就是使用符号“<<+一个标识符+分号”的方式来界定多行字符串位同一个字符串;如:
print <<EOF;
Text string line1.....
Test string line 2...
.....
EOF
这几行代码的功能就是输出两个EOF标识符之间的字符串;其中标识符EOF可以使用一对引号括起来,引号的类型决定了中间这几行字符串的性质;如果是双引号,则两个EOF之间的字符串中出现的变量就可以被变量所保存的实际数据替换;如果是单引号,则两个EOF之间的字符串中出现的变量就不能被其所保存的实际数据替换,而是直接把变量名打印出来;如果是反引号,则两个EOF之间的字符串就会被Perl解释位操作系统命令;这有点类似于Shell脚本中的标记符的功能;第一个EOF与<<之间不能有其它任何字符,而且第一个EOF之后要使用分号结尾;EOF是一个标记符的例子,还可以使用其它标记符来代替EOF标记符,如:END、!、OVER、FINISH等等;