标量可以是数字也可以是字符串。
perl内部并不存在整数值,程序中用到的整数变量也会被转换成等值的浮点数值。
浮点变量举例
1.25
255.000
255.0
7.25e45 #7.25乘以10的45次方
-12e-24 # 负12乘以10的负24次方
整数变量举例
0
1984
-123
非十进制整数变量
0377 # 八进制的377,转换成十进制即255
0xFF # 十六进制的FF(可以是小写的f),转换成十进制即255
0b11111111 #二进制数,转换成十进制也是255
说明:在perl中,不管你写成255 还是0377还是0xFF,都代表同一个数。
数字操作符 + - * / 以及 %(求余)
单引号与双引号内的变量
单引号内的变量就是纯粹的字符串,没有任何意义。而双引号内的变量一些特殊符号不会失效。
'hello\n' #表示 hello\n ,这里的\n是换行符,有特殊含义,但在单引号内失效;
"hello\n" # 值就是hello,其中\n代表换行符。
perl内部并不存在整数值,程序中用到的整数变量也会被转换成等值的浮点数值。
浮点变量举例
1.25
255.000
255.0
7.25e45 #7.25乘以10的45次方
-12e-24 # 负12乘以10的负24次方
整数变量举例
0
1984
-123
非十进制整数变量
0377 # 八进制的377,转换成十进制即255
0xFF # 十六进制的FF(可以是小写的f),转换成十进制即255
0b11111111 #二进制数,转换成十进制也是255
说明:在perl中,不管你写成255 还是0377还是0xFF,都代表同一个数。
数字操作符 + - * / 以及 %(求余)
单引号与双引号内的变量
单引号内的变量就是纯粹的字符串,没有任何意义。而双引号内的变量一些特殊符号不会失效。
'hello\n' #表示 hello\n ,这里的\n是换行符,有特殊含义,但在单引号内失效;
"hello\n" # 值就是hello,其中\n代表换行符。
0
双引号内,一些特殊字符
\n 换行;
\r 回车;
\t 水平制表符;
\f 换页符;
\b 退格;
\\ 反斜杠;
\" 双引号;
\l 将下个字符转换为小写;
\L 将到\E为止的所有字符转换为小写;
\U 将到\E为止的所有字符转换为大写;
\u 将下个字符转换为大写;
\E 结束\L,\U
字符串可以用. (英文输入法句号)来连接
如:$a = "hello" , $b = "world", 那么$a.$b 就是"helloworld"
对于字符串来讲,小写字母x有着特殊的意义。一般格式是这样的 "hello“ x 3 ,左边是字符串,右边是一个数字。它的意思是,把hello这个字符串重复打印3次。注意了,如果左边是数字,perl会默认为是字符串的,如: 5 x 4 这个值并不是20,而是5555.
在perl中,变量赋值是不需要考虑啥类型的,比如你用. 或者 x ,perl会认为变量就是字符串,即使你写的一个数字。而当用+ - * / %时,perl会认为变量是数字,即使你给出的是一个字母或者一个字符串,perl也会自动转换成数字。有一点要说的是,一个字符串中,如果全是字母perl会转换成0;如果一个字符串中既有数字又有非数字并且以数字开头,那么perl会取字符串中最开头部分的数字的值,举个例子
"12world12" * 3 // 其值是12*3=36,这种情况是以数字开头的,另外的
"helo12" *3 // 其值是0,perl不会自动取到后边的数字
\n 换行;
\r 回车;
\t 水平制表符;
\f 换页符;
\b 退格;
\\ 反斜杠;
\" 双引号;
\l 将下个字符转换为小写;
\L 将到\E为止的所有字符转换为小写;
\U 将到\E为止的所有字符转换为大写;
\u 将下个字符转换为大写;
\E 结束\L,\U
字符串可以用. (英文输入法句号)来连接
如:$a = "hello" , $b = "world", 那么$a.$b 就是"helloworld"
对于字符串来讲,小写字母x有着特殊的意义。一般格式是这样的 "hello“ x 3 ,左边是字符串,右边是一个数字。它的意思是,把hello这个字符串重复打印3次。注意了,如果左边是数字,perl会默认为是字符串的,如: 5 x 4 这个值并不是20,而是5555.
在perl中,变量赋值是不需要考虑啥类型的,比如你用. 或者 x ,perl会认为变量就是字符串,即使你写的一个数字。而当用+ - * / %时,perl会认为变量是数字,即使你给出的是一个字母或者一个字符串,perl也会自动转换成数字。有一点要说的是,一个字符串中,如果全是字母perl会转换成0;如果一个字符串中既有数字又有非数字并且以数字开头,那么perl会取字符串中最开头部分的数字的值,举个例子
"12world12" * 3 // 其值是12*3=36,这种情况是以数字开头的,另外的
"helo12" *3 // 其值是0,perl不会自动取到后边的数字
编辑回复