perl-two(2018-05-26)

第一二章

一、数字运算操作符 

+(加)、-(减)、*(乘)、/(除)、**(乘幂操作符)、%(取余)[也叫取模操作符(%)]

(1)乘幂的基数不能为负,如 (-5) ** 2.5 # error; 

(2)乘幂结果不能超出计算机表示的限制,如10 ** 999999 # error 

(3)取余的操作数如不是整数,四舍五入成整数后运算;运算符右侧不能为零 

二. 字符串操作符

1.句号操作符表示连接

"hello"."world"=="hello world"

2.重复操作符

小写字母:x(将左边的字符串重复多少次的操作符)

5 x 4.8==就是将5重复4次,5555

三. 变量

1.标量变量的特点

(1)使用魔符$开头,

(2)变量的perl标识符:使用字母或下划线开头,后接多个字母、数字或下划线。

(3)perl通过魔符来判断变量的使用用途,$的意思是取“取单个东西”或“取标量”;

(4)给变量取名一定要有一定辨识度,要尽量使用通用的名字。

(5)perl中的变量名字大部分只用全小写。

(6)标量变量的赋值,使用=进行赋值操作

(7)双目赋值操作符

第一种:$fred = $fred + 5;

               可以写成 $fred += 5;

第二种:使用字符串操作符"."改进的追加操作符(.=)

在末尾加个空格会这样写,$str = $str." ";

                                           $str .=" ";

(8)标量变量内插(也成为双引号内插)

如果标量变量没有被赋值过,那么使用后会用空字符串代替;

如果单纯打印变量的话,就不用写双引号;

如果变量后面要紧接着输出字母、数字或下划线时,要讲{变量}用花括号圈起来。不然会引起歧义;

用chr()函数将代码点转换成字符;用ord()函数将字符转换成代码点;

操作符的优先级问题要首先参考perlop参考文档进行定夺,另外在写代码的过程中,最好使用括号将确定的操作括起来,方便阅读;

(9)if条件控制结构

条件语句的代码块周围一定要加上花括号来表示界限;

还要注意一定要加上缩排,是代码看起来整洁。

if($name gt 'fred'){

     print "'$name' comes after 'fred' in sorted order.\n";

}else{

    print "'$name' does not come after 'fred'.\n";

    print "Maybe it's the same string,in fact.\n";

}

(10)布尔值

没有专门的布尔值来进行判断,可根据一些规则来判断

第一点:如果是数字,那么返回时数字0是假,其他数字都为真;

第二点:如果是字符串。那么返回空字符串是假,所有其他字符串都为真;

第三点:如果不是数字和字符串,那么就需要先转换成数字和字符串在做判断。

(11)chomp操作符

只作用于单个变量,并且该变量的内容必须是字符串,如果字符串的尾端有换行符时,chomp的作用就是去掉它;

perl的惯例,除非去掉括号会改变内容的原意,不然就不用加括号多此一举;

如果字符串结尾处有两个以上换行符,chomp仅仅删除一个;如果没有换行符,会返回零。

(12)While控制结构

perl也有好几种循环结构,在while的循环体中,只要条件持续为真,那么就会不断执行代码块。


perl-two(2018-05-26)_第1张图片
代码块


perl-two(2018-05-26)_第2张图片
运行结果

(13)undef值

在变量赋值之前,初始值是undef(未定义)值;

undef是另一种类型的标量值;

(14)defined函数

行输入操作符有时候会返回undef值,要判断某个字符串是undef不是空字符串,使用这个函数,如果是字符串则会返回真,如果是undef则会返回假。

二、整数比较操作符 

Table 3.1. 整数比较操作符 

操作符 描述 

< 小于 

> 大于 

== 等于 

<= 小于等于 

>= 大于等于 

!= 不等于 

<=> 比较,返回 1, 0, or -1 

操作符<=>结果为: 

0 - 两个值相等 

1 - 第一个值大 

1 - 第二个值大 

三、字符串比较操作符 

Table 3.2. 字符串比较操作符 

操作符 描述 

lt 小于 

gt 大于 

eq 等于 

le 小于等于 

ge 大于等于 

ne 不等于 

cmp 比较,返回 1, 0, or -1 

你可能感兴趣的:(perl-two(2018-05-26))