Perl学习笔记(第二章)

1.字符串

1.单双引号内的字符串直接量

----单引号内的字符串指的是一对单引号(')圈引的一串字符,单引号内的字符(除了单引号和反斜线字符外)都表示它们自己。

'fred'  #总共4个字符:f、r、e、d
''  #空字符(没有字符)
'hello
there'  #hello、换行符、there(总11个字符)
'\'\\'  #单引号和反斜线(共两个字符)

----双引号内的字符串直接量用双引号表示首尾,其中的反斜线功能比单引号的强大许多,可以转义许多控制字符,也可以使用八进制或者十六进制来表示字符。

"hello world\n"  #helloworld,后面接着换行符
"coke\tsprite"  #制表符
"\x{2688}"  #Unicode中名为HOT SPRINGS的字符和代码点

2.字符操作符

----连接字符串:字符串可以使用 . 操作符连接起来(这里你可能看不太清楚,其实就是句点符号)。

"hello" . "world"  #相当于"helloworld"
"hello" . " " . "world"  #相当于"hello world"

----字符串重复操作符:其实就是一个小写字母x,这个操作符会将左边的操作符与它本身重复连接,重复数由右边的数决定:

"fred" x 3  #得到"fredfredfred"
5 x 4.8  #"5555"

第二个例子中,由于是操作符x,不是乘(×),它左边必须是字符串操作类型,所以5会被转换成字符串"5"。

2.Perl的内置警告信息

#!/usr/bin/perl
use warnings;  #开启警告功能
use diagnostics;  #使得警告信息更加详细

3.标量变量

即只存储一个值的变量。如 $res  或   $hello

1.变量的赋值(略)

2.双目赋值操作符($fred = $fred + 5 <=> $fred += 5)

3.print输出结果

print "hello,world\n";  #输出hello,world,后面接着换行符

4.字符串中标量变量内插

我们使用双引号,一部分是为了各种转义字符,更多的是为了使用标量内插。其实就是把字符串内出现的标量变量替换成该变量当前的值。

$meal = "hello";
$word = "$meal,boy";  # $word现在是"hello,boy"
$word = $meal . ",boy";  #等价的写法

如果标量变量没有被赋值过,那么会用空字符串来替换。

5.借助代码点创建字符

有些字符无法通过键盘键入,可以直接输入其对应的代码点,再使用chr()函数转换成对应的字符。相反的,我们可以使用ord()函数把字符转换成代码点。

6.操作符的优先级和结合性(略)

7.比较操作符

比较 数字 字符串
相等 == eq
不等 != ne
小于 < lt
大于 > gt
大于等于 >= ge
小于等于 <= le

8.if控制结构

9.获取用户的输入

使用行输入操作符<STDIN>,只要把<STDIN>放在程序中希望返回标量值的位置上,Perl就会从标准输入中读取一行文本(直到换行符为止)。

10.Chomp操作符

只能作用于单个变量,并且必须是字符串。如果该字符串的末尾是换行符,chomp()的任务就是去掉它。

#text = "a lint of text\n";
chomp($text);  #去掉行末的换行符

11.While控制结构

12.undef值

如果没赋值就使用到某个变量,不会有什么异常出现。因为在首次赋值前,变量的初始值就是undef(未定义)值。如果当成字符串,就是一个空字符,如果当做数字就是0。而实际上undef既不是数字也不是字符串,它完全是另一种类型的标量值。但是注意使用print输出未定义的标量变量时会发出警告信息。

13.defined函数

行输入操作符<STDIN>有时会返回undef。在一般情况下,它会返回一行文本。但如果没有更多输入,比如读到EOF,它就会返回undef来表示这个状况。要判断某个字符串是undef而不是空字符串,可以使用defined函数,如果是undef,返回假,否则返回真。

猜你喜欢

转载自blog.csdn.net/why_cant_i_change/article/details/83752245