一)perl的四个特性
1、perl很容易,这里指的是容易使用,但是并不容易学习。
2、perl运行速度快
3、perl几乎不受任何限制,几乎没什么事是perl干不出来的,从写完就丢的系统运维小程序到企业级的大型应用程序,都可以使用perl来完成。
4、perl有点丑陋。
二)获取perl及其相关的帮助信息方式
CPAN就是Perl综合典藏网(Comprehensive perl Archive Network),可以说是非常方便的Perl卖场。里面有Perl本身的源代码、各种非Unix系统的安装程序、范例程序、说明文档、扩展模块以及跟Perl相关的历史消息。地址是:http://search.cpan.org/
全世界Perl用户集会组织: http://www.pm.org/
Perl说明文档: http://perldoc.perl.org
最新版本的Perl问题集:http://faq.perl.org/
三)第一个perl脚本的解释
#!/usr/bin/perl
# 程序注释行
# 开发时间及作者
print "Hello , World !!\n"; #这是程序正文
第一行:是一个特殊的解释, #!后引领用来执行这个文件的绝对程序路径。他是Perl程序中移植最不方便的部分,引文所有的Unix及各类Unix中perl执行程序路径各不一样。所以在写程序前你得查这个路径。但大部分不外乎:/usr/bin/perl 及/usr/local/bin/perl这两个常见的路径,但也有其它的。
四)执行一个perl脚本
1. 先给对当前登录用户对程序的执行权限,然后可以用以下三种方法来进行执行。
chmod 755 programe.pl
chmod +x programe.pl
./programe.pl
perl programe.pl
. programe.pl
本文来源:http://www.benet.wang/perl%E7%BC%96%E7%A8%8B/85.html
标量数据
Perl一般用标量来表示单件事物,标量分为两种:数字标量和字符标量;
一)关于数字标量
1、浮点数直接量
1.25
255.000
7.25e45 #7.25 X 10^45
-6.5e24 #-6.5 X 10^24
-12e-24 #-12 X 10^(-24)
-1.2E-23 #-1.2 X 10^(-23)
2、整数直接量
0
2001
-40
255
61298040283768
(可以写成这样:61_2980_4028_3768)(也可以写成这样:61_298_040_283_768)
可以对比较难读的较长数字用"_"分割,分割的方式可以按自己的阅读喜好!
3、非十进制的整数直接量
0377 #八进制值表示法 (前面加数字零)
0xFF #十六进制值表示法
0b11111111 #二进制值表示法
0x1377_0B77 #十六进制值表示法
0x50_65_72_7C #十六进制值表示法
4、数字操作符
2 + 3 #加
5.1 - 2.4 #减
3 * 12 #乘
14 / 2 #除
10.2 / 0.3 #除法
10 / 3 #除法
10 % 3 #求余
2 ** 3 #次方数,表示2的3次方
二) 关于字符串标量
字符串长度取值:最短字符串为不包含任何字符的空字符串,最长的字符串没有限制(在perl中执行无内置限制原则)。
字符串组成内容:字母、数字、各类标点符号。
1、单引号内的字符串直接量
例如
'fred'
'hello, I sweet you!!'
''
'wo ai \'beijing\' tian an men!!!'
'\\nihao\\'
注意:如果在单引号中要引用单引号,要在单引号前加个反斜杠;如果要在单引号中使用"\",也要在反斜杠前加反斜杠。
2、双引号内的字符串直接量
双引号内如果单独引用字符的话,和单引号没什么区别,但是,对内部的反斜线有更大的作用,可以表示控制字符,或是用十六进制、八进制表示任何字符。
例如:
"barney"
"hello world/n" #/n表示换行符
"nihao\tbeijing\n" #\t表示制表符TAB键
"nihaoa \"" #双引号中要使用双引号时,前面只有加反斜线才能使用。
双引号内字符串的反斜线转义
组合 定义
-----------------------------
\n 换行
\r 回车
\t 水平制表符
\f 换页符
\b 退格
\a 系统响铃
\e ESC
\007 任何八进制的ASCII值
\x7f 任何十六进制的ASCII值
\cC 控制符,也就是Ctrl键的代码
\\ 反斜线
\" 双引号
\l 将下个字母转换成小写
\L 将到\E之间的字母转换成小写
\u 将下个字母转换成大写
\U 将到\E之间的字母转换成大写
\Q 将到\E为止的非单词字符前加上反斜线
\E 结束\U,\L,\Q
3、 字符串操作符
a) 字符操作符"."
例如
"hello" . "world" <=> "helloworld"
"hello" . ' ' . "world" <=> "hello world"
'hello world' . "\n" <=> "hello world\n"
b) 字符操作符"x"
"fred" x 3 <=> "fredfredfred"
"barney" x (4+1) <=> barneybarneybarneybarney
5 x 4 <=> 5555
4、Perl内建警告信息
perl -w my_programe
或者
#!/usr/bin/perl -w
或者
#!perl -w
或者
#!/usr/bin/perl
use warnings;
或者
#!/usr/bin/perl
use diagnostics;
或者
perl -Mdiagnostics ./my_programe_name.pl
5、perl中的变量名称
$aaaa_bbbbb
一般变量名称以$符号卡头,后面名字开始可以是字母或下划线开头,后面可以是若干字母或下划线与数字的组合。
6、双目赋值操作符的表示
例如
$fred = $fred + 5; (未使用双目赋值操作符)<=> $fred += 5; (使用了双目赋值操作符)
$barney = $barney * 3; <=> $barney *= 3
$str = $str . " "; <=> $str .= " ";
7、操作符的优先级与结合性(从高到低排序)
结合性 操作符
------------------------------
左 括号;给定参数的列表操作符
左 ->
++ -- (自增;自减)
右 **
右 \ ! ~ + - (单目操作符)
左 =~ !~
左 * / % x
左 + - . (双目操作符)
左 << >>
具名的单目操作符(-X 文件测试; rand)
< <= > >= lt le gt ge ("不相等" 操作符)
== != <=> eq ne cmp ("相等" 操作符)
左 &
左 | ^
左 &&
左 ||
.. ...
右 ?: (三目操作符)
右 = += -= .=
左 , =>
右 not
左 and
左 or xor
8、比较操作符
比较
数值
字符串
相等
==
eq
不等
!=
ne
小于
<
lt
大于
>
gt
小于或等于
<=
le
大于或等于
>=
ge
9、if控制语句
a、if 单分支控制语句
if (条件表达式) {
执行语句块;
}
==================
b、if双分支控制语句
if(条件表达式1){
执行语句块1;
}else{
执行语句块2;
}
===================
c、if多分支控制语句
if(条件表达式1){
执行语句块1;
}elsif(条件 表达式2){
执行语句块2;
}
... ...
}elsif(条件表达式n){
执行语句块n;
}else{
执行语句块n+1;
}
==================
10、获取用户输入
$line = ;
---------------------
$line = ;
chomp ($line); #chomp的作用在于去除末行的换行符。
等同于
chomp($line = );
11、while控制语句
while (条件表达式) {
循环执行语句体; # 当条件表达式为真的时候执行循环体,直到条件变为假时跳出循环体。
}
12、关于undef值
描述:如果还没赋值就用到了某个标量变量,变量的初始值就是特殊的undef(未定义的),如果你将它当成是数字的话,它就假设这是0; 如果当成字符串用的话,它就是空字符串。
例如:(计算1-10所有数字的和)
[root@localhost ~]# cat test.pl
#!/usr/bin/perl
#test
$i=1;
while ($i <= 10) {
$sum += $i; #sum此时在之前并未赋值,所以初始值为0;
$i += 1;
}
print "The (1-10) sum is : $sum\n"
[root@localhost ~]# perl test.pl
The (1-10) sum is : 55
本文来源:http://www.benet.wang/perl%E7%BC%96%E7%A8%8B/86.html