一、数字常量
在Perl中,不管是整型常量还是浮点型常量都是按照双精度浮点型常量来表示的,也就是说在Perl内部,并不存在整型常量(所有的整型常量都会转换为等效的浮点型常量)。
1. 浮点型常量
例如:
2. 整型常量
例如:
61_298_040_283_768
上面这种写法同不使用下划线的写法表示的数字完全相同,只是为了便于阅读而已,那为什么不使用常见的逗号','呢,因为Perl将逗号用在了其它更重要的地方了。
Perl中同样可以使用八进制、十六进制来表示整型常量,除了八、十六进制外,还有二进制,八进制的常量使用0(零)开头,十六进制以0x开头,二进制以0b开头,例如:
二、字符串常量
字符串常量有单引号'''和双引号'"'两种。
在单引号字符串常量中,除了单引号'''和反斜线'\'外,其它所有字符都表示为字符本身,有点拗口,要表示单引号和反斜线时,需要在在前面加上反斜线,例如:
对于双引号字符串常量同单引号字符串常量唯一不同的是可以使用转义字符,例如前面的\n在双引号字符串常量中表示换行符。转义字符如下:
三、字符串的连接
在Perl中,字符串可以使用点'.'操作符连接起来,组成一个字符串,例如:
还有个特性就是字符串重复操作符,例如:
四、字符串常量同数字常量的自动转换
在Perl中,Perl会根据需要在字符串和数字之间进行类型转换,转换的规则取决于操作符,如果操作符的对象是数字,那么Perl就会将它当作数字,如果操作符的对象是字符串时,则将它当作字符串,例如,"12" * "3"的结果为36,"12fred34" * "3"的结果也为36,Perl会忽略其中的非数字部分,特殊情况下不包含数字的字符串会被转换为零("fred"会被当作数字零来使用)。
同样,在需要字符串的时候,数字会被转换为字符串来使用,"Z" . 5 * 7等同于"z" . 35得"Z35"。这些转换都是自动完成的,在平时编程注意一下就是了。
在Perl中,不管是整型常量还是浮点型常量都是按照双精度浮点型常量来表示的,也就是说在Perl内部,并不存在整型常量(所有的整型常量都会转换为等效的浮点型常量)。
1. 浮点型常量
例如:
1.25
255.000
255.0
7.25e45 # 7.25 * 10^45
-6.5e24 # -6.5 * 10^24
-12e-24 # -12 * 10^-24
-1.2E-23
小数点和其中的正负号都是可选的,同样可以使用e来表示10的多少次方。
2. 整型常量
例如:
0
2001
-40
255
61298040283768
最后一个数字可能不易于阅读,Perl中可以加上下划线,用来分开数字中的位:
61_298_040_283_768
上面这种写法同不使用下划线的写法表示的数字完全相同,只是为了便于阅读而已,那为什么不使用常见的逗号','呢,因为Perl将逗号用在了其它更重要的地方了。
Perl中同样可以使用八进制、十六进制来表示整型常量,除了八、十六进制外,还有二进制,八进制的常量使用0(零)开头,十六进制以0x开头,二进制以0b开头,例如:
0377
0xFF
0b11111111
以上三个常量都表示十进制的255。
二、字符串常量
字符串常量有单引号'''和双引号'"'两种。
在单引号字符串常量中,除了单引号'''和反斜线'\'外,其它所有字符都表示为字符本身,有点拗口,要表示单引号和反斜线时,需要在在前面加上反斜线,例如:
‘fred’ # 4个字符
'barney' # 6个字符
'' # 空字符串
'Don\'t let an apostrophe end this string prematurely!'
'the last character of this string is a backslash: \\'
'hello
there' # hello、换行符、there(共11个字符)
'\'\\' # 单引号和反斜线
需要注意的是,在Perl中字符串末尾并没有字符串的结束符'\0',同时在单引号字符串中,'\n'并不代表换行符,而是表示为’\‘和‘n’这两个字符,只是这个反斜线无任何意义。
对于双引号字符串常量同单引号字符串常量唯一不同的是可以使用转义字符,例如前面的\n在双引号字符串常量中表示换行符。转义字符如下:
\n 换行
\r 回车
\t 水平制表符
\f 换页符
\b 退格
\a 响铃
\e ESC
\007 八进制的ASCII值,这里的007表示系统响铃
\x7f 十六进制的ASCII值,这里的7f表示删除(DEL)键
\cC 控制符,这里表示(Ctrl + C)
\\ 反斜线
\" 双引号
\l 将下一个字符转换为小写
\L 将到\E为止的所有字符转换为小写
\u 将下个字符转换为大写
\U 将到\E为止的所有字符转换为大写
\Q 将到\E为止的非单词(non-word)字符加上反斜线
\E \E、\U和\Q的结束符
三、字符串的连接
在Perl中,字符串可以使用点'.'操作符连接起来,组成一个字符串,例如:
"hello" . ' ' . "World!" # 等同于"Hello World!"
注意同其它语言不同的是在Perl中,连接字符串必须显示的使用.操作符。
还有个特性就是字符串重复操作符,例如:
"fred" x 3 # 得到"fredfredfred"
重复操作符为x,此操作符将其左边的字符串重复连接起来,重复的次数由右边的数字决定。
四、字符串常量同数字常量的自动转换
在Perl中,Perl会根据需要在字符串和数字之间进行类型转换,转换的规则取决于操作符,如果操作符的对象是数字,那么Perl就会将它当作数字,如果操作符的对象是字符串时,则将它当作字符串,例如,"12" * "3"的结果为36,"12fred34" * "3"的结果也为36,Perl会忽略其中的非数字部分,特殊情况下不包含数字的字符串会被转换为零("fred"会被当作数字零来使用)。
同样,在需要字符串的时候,数字会被转换为字符串来使用,"Z" . 5 * 7等同于"z" . 35得"Z35"。这些转换都是自动完成的,在平时编程注意一下就是了。