加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl自学笔记整理(一)

发布时间:2020-12-15 23:43:18 所属栏目:大数据 来源:网络整理
导读:一)perl的四个特性 1、perl很容易,这里指的是容易使用,但是并不容易学习。 2、perl运行速度快 3、perl几乎不受任何限制,几乎没什么事是perl干不出来的,从写完就丢的系统运维小程序到企业级的大型应用程序,都可以使用perl来完成。 4、perl有点丑陋。 二

一)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????????????? ? #十六进制值表示法
0b22222111? ? #二进制值表示法
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表示换行符
"nihaotbeijingn"? ? #t表示制表符TAB键
"nihaoa ""? ? #双引号中要使用双引号时,前面只有加反斜线才能使用。
双引号内字符串的反斜线转义
组合????? ? 定义
-----------------------------
n????????? ? 换行
r????????? ? 回车
t????????? ? 水平制表符
f????????? ? 换页符
b????????????退格
a????????? ? 系统响铃
e????????? ? ESC
07????? ? 任何八进制的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 worldn"
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
use warnings;
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多分支控制语句
}elsif(条件 表达式2){
... ...
}elsif(条件表达式n){
? ? 执行语句块n;?
? ? 执行语句块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 : $sumn"
[root@localhost ~]# perl test.pl?
The (1-10) sum is : 55
本文来源:http://www.benet.wang/perl%E7%BC%96%E7%A8%8B/86.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读