2 Perl - 字符串-2

2.2.3 字符串操作符
字符串可由. 操作符连接(是的,只是一个点) 。它不会改变任何字串,就像2+3 不会改变2 或3 一样。串联之后的字符串
可供以后使用:


#concat
print "hello"."world"; # 同于"helloworld"
print "hello”".''."world"; #同于"hello world"
print 'hello world'."/n"; #同于"hello world/n"



串联必须由. 操作符进行。同别的语言不一样,串联可通过把两个放在一起来达到。
一个特殊的操作符是字符串重复操作符(string repetition operator),由小写的字母x 表示。这种操作能把操作符左边字符串
重复操作符右边数字那么多次:

 

# multiplicating the content
print "fred"x 3; # “fredfredfred"
print "barney" x (4+1); # "barney"x 5, "barneybarneybarneybarneybarney"


5 x 4 #实际上是“5”x 4, “5555”
值得具体讲解下最后一个例子。字符串重复操作符需要一个字符串作为左操作数,因此数字5 被转变为字符串“5”(在一
节将详细讨论),一个单字符字符串。这个新的字符串被复制4 次,产生了一个4 字符的字符串5555。如将两个操作数的
顺序对调下:4 x 5,将得到字符串44444。这表示字符串重复操作符不是可交换的。

 

2.2.4 数字和字符串之间的自动转换
大多数情况下,Perl 将在需要的时候自动在数字和字符串之间转换。它怎样知道什么时候需要字符串,什么时候需要数字
呢?这完全依赖于标量值之间的的操作符。如果操作符(如+)需要数字,Perl 将把操作数当作数字看待。如果操作符需要
字符串(如. ),Perl 将把操作数当作字符串看待。不必担心数字和字符串的区别;使用恰当的操作符,Perl 将为你做剩下
的事。
当在需要数字的地方使用了字符串(如,乘法),Perl 将自动把字符串转换为其等价的数字,就像输入的是十进制浮点数一
样◆。因此“12”* “3”将给出36。后面的非数字部分和前面的空格将被去掉,如“12fred34”* “3”将给出36 而不会用任何
提示◆。在极端情形,当一个不含任何数字的字符串将别转换为0。如,将“fred”当作数字来使用时。


◆用首字符0 表示非十进制值对数字有效,对自动转换没有作用。使用hex()和ort()来转换此类字符串
◆除非你使用了warnings,我们将很快讨论到。


同样,如在需要字符串的地方使用了数字(如,字符串连接),数字将转换为字符串。例如,如果你想在Z 后串接5 乘以7
的结果◆,可以这样写:
“Z”. 5 * 7 #同于“Z”. 35,或“Z35”
总之,一句话,不用担心使用的是数字还是字符串(大多数情况下)。Perl 将自动转换它们

◆不用担心效率问题。Perl 能记住转换的结果,因此这一步只做一次。

你可能感兴趣的:(Perl)