2.2 字符串
字符串是一串字符(如hello)。字符串可能是字符的任意组合◆。最短的字符串不含任何字符。最长的字符串,可以填满
整个内存。这符合Perl 的哲学,只要有可能就不加任何内嵌的限制。通常字符串是可打印字符,数字,标点符号的序列(从
ASCII 32 到ASCII 126)。但,Perl 中字符串可以包含任意字符,意味着利用字符串(string)你可以创建,遍历,操作二进制
数据,而利用别的方法可能遇到极大的困难。例如,你可以把要更新的图片或编译好的程序放入一个Perl 的字符串变量中,
做完相应的修改后,再写回去。
◆和C,C++不同,Perl 中NUL 字符没有特殊的含义。Perl 能计算长度,不用靠null 来判断字符串是否结束。
和数字一样,字符串也可由文字符号(literal)来表示,它用来在Perl 程序中代表某个字符串。有两种类型的字符串:单引号
字符串和双引号字符串。
2.2.1 单引号字符串
单引号字符串是由单引号括起来的字符序列。单引号不是字符串的一部分,但Perl 可以利用它来辨别字符串的开始和结束。
除了单引号,或者反斜线(包括换行字符,如果字符串在下一行继续)之外的任何字符都表示它自身。要得到一个反斜线,
可以把两个反斜线放在一起;要得到单引号,需要在单引号前加上反斜线:
print 'fred'; #四个字符:f,r,e,d
print 'barney'; #六个字符
print''; #空字符(没有字符)
print 'Don’t let an apostrophe end this string prematruely!';
print 'the last character of this string is a backslash: //';
print 'hello/n'; #hello 紧跟着反斜线和n
print 'hello
there'; #hello,换行,there (共11 个字符)
print '/'//'; #单引号(')跟着反斜线(/)
单引号字符串中的/n 不会被当作换行符来处理,其仅仅是两个字符/和n。只有在反斜线(/)后面接的是/或单引号’,其才会被
当作特殊符号来处理。
2.2.2 双引号字符串
双引号字符串和在其它语言类似。它也是字符的序列,不同点在于,其由双引号括起来的。现在,反斜线可以用来表示控
制字符,或者八进制,十六进制数的表示。下面是一些双引号字符串的例子:
print "barney"; #等同于'barney'
print "hello world/n"; #hello world,换行
print "the last character of this string is a quote mark:/"";
print "coke/tsprite"; # coke,a tab(一个制表符),sprite
双引号中字符串“barney”和单引号字符串‘barney’相同。和数字一样,0377 只是255.0 的另一种写法。Perl 允许你以一种更
有意义的方式来书写。当然,如果想/和之后的字符成为转义字符(如/n 表示新行),应当使用双引号。
双引号字符串另一个性质是可进行变量内插,这是说当使用字符串时,如果字符串中含有变量名,将由变量的当前值替换 它。我们还没有介绍变量,在本章的后面将继续讨论这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。