Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35619
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5
  • 用 户 组: 普通用户
  • 注册时间: 2017-09-11 08:57
文章分类
文章存档

2013年(16)

分类: PERL

2013-04-15 17:34:57

一、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   <

Text string line1.....

Test string line 2...

.....

EOF

这几行代码的功能就是输出两个EOF标识符之间的字符串;其中标识符EOF可以使用一对引号括起来,引号的类型决定了中间这几行字符串的性质;如果是双引号,则两个EOF之间的字符串中出现的变量就可以被变量所保存的实际数据替换;如果是单引号,则两个EOF之间的字符串中出现的变量就不能被其所保存的实际数据替换,而是直接把变量名打印出来;如果是反引号,则两个EOF之间的字符串就会被Perl解释位操作系统命令;这有点类似于Shell脚本中的标记符的功能;第一个EOF与<<之间不能有其它任何字符,而且第一个EOF之后要使用分号结尾;EOF是一个标记符的例子,还可以使用其它标记符来代替EOF标记符,如:END、!、OVER、FINISH等等;
阅读(1656) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~