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,返回假,否则返回真。