文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>perl学习笔记7

perl学习笔记7

时间:2007-04-12  来源:dingding

1.  单引号字串是包含在一对单引号内的任何字符序列。Perl认为包含在单引号内的每一个字符都不具有任何特殊的意义。唯一的两个例外是换码序列反斜杆单引号(\’),它代表字串内一个应保持原样的单引号;以及两个连续的反斜杠(\\),它代表字串内一个应保持原样的反斜杠。

2.  双引号是包含在一对双引号内的任何字符序列。在双引号字串中,可包含换行符(\n)、制表符(\t)或其他换码序列字符。Perl会把换马序列的结果字符插入双引号字串中。

换码系列

含义

\n

换行

\r

回车

\t

制表符

\”

字面的双引号

\’

字面的单引号

\\

字面的反斜杠

\$

字面的美元符

\@

字面的@字符

\%

字面的%字符

\u

大写下一个字符

\l

小写下一个字符

\b

退格

 

3.  Perl提供了两个运算符以简化字串的构造并提高它的可读性。

Ø         q,运算符把他的参数封闭在单引号中。如:

q ( Don’t cross the street )

q运算符会用单引号来替代开括号和闭括号。注意,对于单词“Don’t”中的嵌套单引号,没有使用换码序列。

Ø         qq,运算符把他的参数封闭在双引号中。它的结果字串拥有一般双引号字串的所有特征,包括插入换码序列和变量。如:

qq ( Tim ask, “What time is it?”)

注意:嵌套的双引号不需要换码序列。

Ø         qr,运算符用来创建和编译常规表达式。如:

$pattern = qr ( snow );

 

4.  “Here”文档

Perl允许程序员“引用”代码块,如下:

<<标识符;

文本行

文本行

标识符

利用上面的”Here”文档,程序员可以创建跨越多行代码的字串。

Ø         注意在<<之后,必须加一个“结束字串”。也就是说,在标识符之后必须加一个标准的分号,从而定义一个“Here”文档的开始。

Ø         注意在<<和标识符之间是没有空格的。

Ø         另外,为了让perl顺利的识别出标识符,不要为其加上引号,而且必须将结束标识符放在一个空行的起始处——该行不可放置其它任何代码,包括文件结束标志(EOF)(用来结束一个文件的特殊标记)。

Ø         假如结束标识符在程序的最后一行,那么必须在标识符后键入回车符。

Ø         “Here”文档最开始的标识符可以加引号,而用于结束的标识符却不可以加引号。

Ø         如果标识符不加引号或双引号,那么字串继承了双引号字串的特性,包括插入转码序列和变量。

Ø         如果标识符加上单引号,字串继承单引号的特征。

Ø         “Here”文档常用在CGI脚本中使用,它是输出大量HTML而不需多次调用print函数的便捷方法。

 

print  <<DONE;

print  <<’DONE’;

$variable =  <<DONE;

$variable =  <<’DONE’;

 

5.  基本字串函数

Ø         substr函数返回一给定字串的子串;使用语法如下:

substr ( string , offset ,length ,replacement )

 

²        该函数返回从字串位置offset开始,长度为length的子串。可以用replacement(它可能是字串或包含资产的变量)来替代函数要返回的子串。

²        如从字串的开始处提取子串,offset必须设置为0。

²        offset和length可正可负,如果是负的,将从字串的结束倒数offset的位置开始提取子串。Length为负时,强制函数从字串结束处开始提取,直到倒数length个字符的位置。Length参数为可选项,如果length参数缺省,函数从倒数offset处开始提取直到字串结束。

 

Ø         uc(uppercase)函数lc( lowercase)用于切换表达式中每个字符的大小写状态并将结果字符串返回。uc函数从参数中返回大写字串;lc函数从参数中返回小写字串。如果函数参数缺省,则应用于特殊变量$_。

Ø         length函数返回字符表达式的长度。函数的返回值取决于参数是单引号字串或双引号字串。换码序列\n和\t只有当他们欻县在双引号中才会以换行符或制表位插入,否则,视为两个字符。函数length的参数必须是标量数值。

当变量$string作为参数传递给length函数,函数把它当作双引号封闭下来的字串处理。

Ø         chop和chomp函数

²        chop函数用于移除字串最后一个字符,并返回该字符。而一般程序员使用这个函数移除用户输入行结束处换行符。

²        chop函数的参数可为列表变量。Chop函数移去列表参数中每个字串的最后一个字符。因为函数改变它的参数,所以,参数不需要一个文本列表或一个文本字串。

²        如果参数缺省,函数默认地应用于特殊变量$_。

²        $/  输入记录分隔符。$/ 默认值为换行符。

²        chomp函数。如果$/的默认值为换行符,字串的最后一个字符匹配特殊变量$/,那么chomp函数将保证只移除换行符。如果提供列表字串作为参数,chomp函数将移除列表字串中每个字串的最后一个字符。如果没有提供参数,$_将作为默认参数。它的参数不需要时文本列表或文本字串。Chomp函数返回移除字符数(该数为标量)。

²        如果特殊变量$/包含空字串(“ ”),chomp函数移除字串结尾的所有换行符。

 

Ø         函数index和函数rindex

²        函数index返回给定字串在另一给定字串中的第一出处的位置,它使用如下语法:

index ( string, substring, startPostion )

该函数从字串startpostion处的字符开始查找子串,直到原字串中第一次发现子串或字串结束。如果子串没有找到,函数返回-1。字串可以是文本或标量。注意,startpostion参数十可选的。缺省该参数,函数将从字串的开始处查找。

²        函数rindex功能基本上与index相同,除了它以反方向进行查找,

 

Ø         函数join

join函数语法:

       join ( separator, list )

该函数用于将列表中的个体字串合并成一个字串。返回的字串包括列表中的每个字串,并用特定的分隔符分开。分隔符可以是任何字串,但一般用逗号、冒号或其它适用的字段分隔符。例如:

join ( ‘and’, (1..5));

 

Ø         split函数

split函数语法如下:

       split ( /RegularExpression/, string, limit)

²        它用于查找字串并将其分解成独立的字段。一个字段包含两个定界符间(分隔符)的每个字符。常规表达式中每个非重叠匹配字符都可以认为是字段分隔符。

²        在“使用列表场合”下,split函数将原字串分解成独立的字段并以列表形式返回。在“使用标量场合”下,函数返回分解后的字段数。如果找不到匹配,函数将原字串返回为止包含一项的单项列表。参数limit限定了split函数可分解的最大字段数。

²        Split函数中的所有参数都是可选的。参数从右至左依次缺省。limit参数缺省,由空字串组成的任何字段将不返回在列表中。如果string参数缺省,函数将操作特殊变量$_。如果所有参数都缺省,函数使用空白常规表达式\s+作为字段分隔符。

 

Ø         tr / / /转换运算符

类似于替代运算符,转换运算符用特定字符来替代字串中找到的字符。Tr运算符的语法格式如下:

       tr / searchCharacters / replacementCharacters /

转换运算符使用绑定运算(=~)在标量变量(字串)中查找searchCharacters中的特定字符,并用replacementCharacters中相应得字符替代他们。如果searchCharacters中的特定字符多于replacementCharacters中的字符,多余的特定字符用replacementCharacters中的最后一个字符替代。如果不绑定运算符,运算符查找和修改特殊变量$_。searchCharacters和replacementCharacters中的字符是个体字符或逻辑群字符(如:0~9或A~Z)

       $existingString =~ tr / a-z / A-Z/;

上式将变量中的小写字母替换为大写字母。

       $existingString =~ tr / ABC / +-*/;

将A用+替代,B用-替代,C用*替代。

 

修改符

含义

/c

替代searchCharacters的补集

/d

删除字串中没有相应替代字符的字符

/s

忽略连续的、重复的匹配

 

例如:

$example =~ tr / ABCDE / ab / d;

替换找到的AB,却删除找到的C、D、E。

 

相关阅读 更多 +
排行榜 更多 +
方块枪战战场安卓版

方块枪战战场安卓版

飞行射击 下载
战斗火力射击安卓版

战斗火力射击安卓版

飞行射击 下载
空中防御战安卓版

空中防御战安卓版

飞行射击 下载