第二章 标量数据
1、 一般来说,Perl用标量(Scalar)指称单件事物;
2、 Perl中,所有数值的内部格式都相同,一律使用双精度浮点数进行运算;
3、 直接量是Perl原程序中数值的表示形式,在非十进制的整数直接量表示中,八进制以0开头,十六进制以0x开头,而二进制以0b开头;
4、 操作符**表示幂乘,如2的3次方为2**3;
5、 字符串没有长度限制(0—∞);
6、 单引号内的字条符串,除了单引号和反斜线外,均表示它本身,/n也不表示换行符;
7、 双引号内的转义字符:
a) /a 发声
b) /e “ESC”
c) /l 将下个字符转换为小写
d) /L 将到/E的所有字符转换为小写
e) /u 将下个字符转换为大写
f) /U 将到/E的所有字符转换为大写
g) /Q 将到/E为止的所有非文字字符(non-word)加上反斜线
h) /E 结束/L、/U或/Q
8、 双引号内可以使用完整意义上的转义字符,也可以实现变量替换;
9、 .(点号)是字符串连接操作符,在进行字符串连接时必须明确使用字符串连接操作符;x(小写字母x)是字符串复制操作符,操作符右边为复制次数(如果不是整数会先取整);
10、 字符串和数字之间的转换是自动的,这靠作用在标题值上的操作符来决定,如,+将视为数字,x将视为字符;
11、 要在运行程序时启用警告,可以使用-w命令行选项($perl –w),也可以为每次运行都打开警告功能(#!/usr/bin/perl -w),也可以用“use warnings;”(这个警告更有用些)来代替,如果想查看非常详细的警告信息,可以使用“use diagnostics;”,但是会相当程序地拖慢程序运行速度,因此建议在运行时使用“—M diagnostics”选项仅一次性地打开此功能;
12、 标量变量以$开头,标识符可以用字母、数字和下划线表示,但不能以数字开头;perl程序中,建议标量变量名称以全小写字母表示,全大写字母只在偶尔的特殊情况下使用;如果名称多于一个单词,命名风格常见的有首字母大写派($giveMeInitialCaps)和下划线派($underscores_are_cool);
13、 双目操作符,+=,*=,.=,**=,-=,x=,/=
14、 print 后的参数可以是标量值,可以是逗号隔开的一串值(列表),也可以是要替换的变量名称(将其放在双引号内,当然也可不放;如果放在单引号内,会将变量名原样输出);双引号内的$需要进行转义才能正常输出;如果变量名后紧跟字母、数字或下划线,则需要用两种方法以避免误导perl程序,一种是用{}把变量名括起来,另一种是把字符串拆开,而后用连接符连接起来;
15、 任何标量值都可以成为if判断里的条件:在数字的情况下,0为假,其它均为真;在字符情况下,空串(’’)为假,其它均为真;条件可以用“!”取反;
16、 chomp是函数,作用是移除字符串结尾的换行符,如果换行符有两个,则只会移除一个,如果没有,则不进行移除;chomp返回值为移除的换行符的个数,当然,最多只有一个;如果没有移除,则返回0;chomp后可以没有括号;
17、 while判断条件为真时进行循环,而until在条件为假时进行循环;其条件在第一次执行前就会进行检查;
18、 在首次赋值之前,变量的初始值是undef,它既非数字,亦非字符串;但如果其后用到了此变量,当成数字则会用0替换,被当作字符串时则会用空串替换;如果想要判断某个字符串究竟是undef还是空字符串,可以使用defined函数,对undef返回“假”,对其它均返回“真”;