perl语言入门(小骆驼书)第二章学习笔记续2
已有 1365 次阅读|
2011-11-10 09:02
1、操作符的优先级和结合性:在复杂的操作里,哪个操作会先发生取决于操作符的优先级。可以使用圆括弧来改变默认的优先级。任何放在括弧内的操作的优先级都比放在括弧外的优先级高!
2、当两个优先级相同的操作数抢着使用第三个操作数的时候,优先级便交由结合性来解决!
3、对数值进行比较时,Perl的逻辑比较操作符类似于代数系统的:<、<=、==、>=、>、!=。想要比较字符串时,Perl有一系列的字符串比较符,看起来像是些奇怪的短语:lt、le、eq、ge、gt、ne。它们会逐一比对两个字符串里的字符,判定它们是否彼此相等或是哪一个排在前面。
4、if控制结构:唯一要注意的一点就是可选(执行)的程序块周围一定要加上表示块界限的花括弧。
5、布尔值:Perl并没有专用的布尔数据类型,它是靠一些简单的规则来判断的:
a、如果值为数字,0为假;所有其它数字都为真。
b、如果值为字符串、空字符串(' ')为假;所有其它字符串都为真。
c、如果既不是数字也不是字符串,就先转换成数字或是字符串再行判断。
以上规则中隐藏了另一条规则。字符串'0'跟数字0时同一个标量值,所以Perl会将它们一视同仁。也就是说,字符串‘0’是唯一被当成假的非空字符串。
6、只要在程序代码中能使用标量值的位置写上<stdin>,Perl就会从标准输入读进一行文字(直到换行符为止)。如果<sdtin>里没有可读取的字符(通常都是这样的,除非你预先打了一整行的字符),Perl程序就会停下来,等待你输入某些字符,直到换行符(即按下回车键)出现为止。
7、chomp操作符:chomp只能用在一个变量上,而且该变量的内容必须为字符串。如果此字符串的结尾时换行符,chomp能将它移除。chomp是一个函数,它自己的返回值是实际移除的字符数。这个数字几乎没有用处。
8、undef值:在首次被赋值之前,变量的初始值就是特殊的undef(未定义)。如果你想把这个undef当成数字使用,他会假设只是0;如果当成字符串使用,就会假设这是空字符串。但是undef既不是数字也不是字符串,它完全是另一种类型的标量值。
9、defined函数:要判断某个字符串时undef而不是空字符串,可以使用defined函数。如果是undef,该函数返回假,否则返回真!