Perl语言基础.ppt
合集下载
perl培训课件1
Perl语言– 标量
操作符的优先级 1:算术去处符的优先级高于移位运算符 2:关系运算符的优先级高于逻辑运算符
Perl语言– 标量
操作符的结合性 1:复合运算符的结合性是---右 2:其余的基本上是左结合性
Perl语言– 标量
布尔值 1:perl没有独立的布尔数据类型 2:依靠以下规则进行判断 1>数字情况下:0为假,其余为真 2>字符串情况下:空字符串为假(空字符串表示:“”),非空为真 3>如果不是数字或者字符串,先转换成数字或者字符串,再进行比较 特别注意:字符串“0”或者‘0’为假,perl把这个字符当成0对待
Perl语言– 标量
2:双引号内的字符串直接量 指包含在一对双引号内的任意字符串直接量,有如下功能 1>元字符拥有其特殊的含义 2>在双引号内的可以进行变量替换(就是把输出变量原有的值) 例:”coke\tsprite”
Perl语言– 标量
双引号内字符串的反斜线转义字符 \n 换行 \r 回车 \t 水平制表 \f 换页 \b 退格 \\ 反斜线 \" 双引号 \l 将下个字符转为小写 \u 将下个字符转为大写
也就是说可以写一些二进制的字符串让perl来操作,如: ””00000111111111”
Perl语言– 标量
1:单引号内的字符串直接量 指在单引号内包含的字符串直接量,它取消了所有元字符的特殊含义 如\n:做元字符时,表示换行操作 不做元字符时,就是普通的字符\ n,代表它们本身,如:’hello\n’ 注意:只有在“\”后面跟有“\”(反斜杠)或者“’”(单引号)时,反斜 杠才能有特殊的含义, 如:’hello\\n’
Perl语言
函数chomp 1:只能用在变量上,并且该变量的内容提要必须为字符串 2:去掉字符串结尾的换行符(前提是有换行符);如果结尾没有换行符,chomp 不会起作用并且只返回0 3:只能去掉一个换行符 如:$name=<STDIN>; chomp($name); 更简便的写法: Chomp($name=<STDIN>);
《学习PERL》课件
面向对象编程
Perl支持面向对象编程,可以定义类 和对象,支持继承和多态等面向对象
的特性。
强大的文本处理能力
Perl拥有丰富的文本处理函数,能够 高效地处理字符串、正则表达式等文 本数据。
丰富的第三方库
Perl拥有庞大的第三方库和模块,涵 盖了各种领域,方便程序员快速开发 。
Perl的应用领域
Web开发
更新操作
更新哈希表或关联数组中的 键值对。
引用和动态内存分配
引用
通过引用实现变量之间的关联和共享。
引用计数
了解引用计数机制,掌握内存管理技巧。
动态内存分配
在运行时动态分配内存空间。
内存管理
合理管理内存,避免内存泄漏和浪费。
CHAPTER 04
Perl模块和包
CPAN和模块安装
01
CPAN(Comprehensive Perl Archive Network)是Perl模块和 包的官方仓库,提供了数千个Perl模块和包供用户下载和安装。
02
Perl的目的是使程序员能够快 速、高效地编写脚本,处理文 本文件和系统任务。
03
随着时间的推移,Perl逐渐发 展成为一种功能强大的编程语 言,广泛应用于Web开发、系 统自动化、网络编程等领域。
Perl的特点和优势
语法灵活
Perl的语法融合了多种编程语言的特性 ,使得Perl既易于阅读又易于编写。
02
使用CPAN工具,如cpanminus或cpan,可以轻松安装所 需的Perl模块和包。
03
安装过程中可能需要管理员权限,确保在安装前了解所需 的权限和依赖关系。
使用模块和包
01
Perl模块和包提供了可重用的代码库,可以方便地用 于开发应用程序。
Perl支持面向对象编程,可以定义类 和对象,支持继承和多态等面向对象
的特性。
强大的文本处理能力
Perl拥有丰富的文本处理函数,能够 高效地处理字符串、正则表达式等文 本数据。
丰富的第三方库
Perl拥有庞大的第三方库和模块,涵 盖了各种领域,方便程序员快速开发 。
Perl的应用领域
Web开发
更新操作
更新哈希表或关联数组中的 键值对。
引用和动态内存分配
引用
通过引用实现变量之间的关联和共享。
引用计数
了解引用计数机制,掌握内存管理技巧。
动态内存分配
在运行时动态分配内存空间。
内存管理
合理管理内存,避免内存泄漏和浪费。
CHAPTER 04
Perl模块和包
CPAN和模块安装
01
CPAN(Comprehensive Perl Archive Network)是Perl模块和 包的官方仓库,提供了数千个Perl模块和包供用户下载和安装。
02
Perl的目的是使程序员能够快 速、高效地编写脚本,处理文 本文件和系统任务。
03
随着时间的推移,Perl逐渐发 展成为一种功能强大的编程语 言,广泛应用于Web开发、系 统自动化、网络编程等领域。
Perl的特点和优势
语法灵活
Perl的语法融合了多种编程语言的特性 ,使得Perl既易于阅读又易于编写。
02
使用CPAN工具,如cpanminus或cpan,可以轻松安装所 需的Perl模块和包。
03
安装过程中可能需要管理员权限,确保在安装前了解所需 的权限和依赖关系。
使用模块和包
01
Perl模块和包提供了可重用的代码库,可以方便地用 于开发应用程序。
perl入门
如果标量变量从未被赋过值,就用一个空串替换。
操作符优先级和结合性
善用小括号
perlk中的操作符优先级和结合性与C一样
比较操作符
相等 == eq
不相等 != ne
小于 < lt
大于 > gt
小于等于 <= le
大于等于 >= ge
if控制结构
的一个整数常量被当作等值的浮点数。
直接量(literal)指的是在perl源代码中表示值的方式,
浮点直接量 1.33,233.5,-3.9
整数据直接量 0,89,-66,61_383_883_897_363(一个大数,用下划线以示清晰)
非十进制整数直接量
八进制直接量以0开头
十六进制直接量以0x开头
于1的拷贝次数会得到一个空串。
数字与字符串的自动转换
依赖于作用在标量值上的操作符。如果是+则是数据,如果是.则是字符串。
"z".6*7="z42" ,"12"*"3"=36
perl的内置警告
可以要求perl在发现你程序有异常时给你一个警告。使用 -w 选项。
#!/usr/bin/perl -w
pop and push操作符
正真的perl程序员不使用索引访问数组,这样发挥不了perl的强项。我们经常把数组当信
息栈用。总是从列表的右侧加入新值或删除。
pop操作取出一个数组的最后一个元素
@array = 5..9;
$fred = pop(@array); $fred得到9,@array现在有(5,6,7,8)
列表可以放任意多的元素,最小的是没有元素,而最大的可以把所有内存耗尽。这符合perl
操作符优先级和结合性
善用小括号
perlk中的操作符优先级和结合性与C一样
比较操作符
相等 == eq
不相等 != ne
小于 < lt
大于 > gt
小于等于 <= le
大于等于 >= ge
if控制结构
的一个整数常量被当作等值的浮点数。
直接量(literal)指的是在perl源代码中表示值的方式,
浮点直接量 1.33,233.5,-3.9
整数据直接量 0,89,-66,61_383_883_897_363(一个大数,用下划线以示清晰)
非十进制整数直接量
八进制直接量以0开头
十六进制直接量以0x开头
于1的拷贝次数会得到一个空串。
数字与字符串的自动转换
依赖于作用在标量值上的操作符。如果是+则是数据,如果是.则是字符串。
"z".6*7="z42" ,"12"*"3"=36
perl的内置警告
可以要求perl在发现你程序有异常时给你一个警告。使用 -w 选项。
#!/usr/bin/perl -w
pop and push操作符
正真的perl程序员不使用索引访问数组,这样发挥不了perl的强项。我们经常把数组当信
息栈用。总是从列表的右侧加入新值或删除。
pop操作取出一个数组的最后一个元素
@array = 5..9;
$fred = pop(@array); $fred得到9,@array现在有(5,6,7,8)
列表可以放任意多的元素,最小的是没有元素,而最大的可以把所有内存耗尽。这符合perl
perl tutorial PPT
Read / Write to Files
♦ To read and write to files we
should create something called handles which refer to the files. ♦ To create the handles we use the OPEN command.
– System("unix command");
♦ EG: system("ls *"); – Will give the directory listing on the terminal where it is running.
Basics
♦ The pound sign "#" is the symbol
Why PERL ???
♦ Perl stands for practical
extraction and report language. ♦ Perl is similar to shell script. Only it is much easier and more akin to the high end programming. ♦ Perl is free to download from the GNU website so it is very easily accessible . ♦ Perl is also available for MSDOS,WIN-NT and Macintosh.
List Variables
♦ They are like arrays. It can
be considered as a group of scalar variables. ♦ They are always preceded by the @symbol.
Perl 语言入门
22
子程序
23
子程序
定义一个子程序
要定义自己的子程序,使用关键字sub,子程序的名字(无&这个符号) sub marine { $n + = 1; #全局变量$n print “Hello, sailor number $n!\n”; }
调用子程序
可以使用子程序的名字(带有&)来调用子程序 &marine; #输出Hello, sailor number 1! &marine; #输出Hello, sailor number 2!
12
開發環境設置
Perl編輯器 編輯器
Open_Perl_IDE
Open_Perl_IDE是一款非常優秀的perl開發工具,它能像visual studio一樣調試perl程序, 支持變量查看。斷點。
13
Perl 變量
14
Perl 變量 標量 變量-標量
字符串
單引號字符串‘zhou’和雙引號字符串“zhou”等同。 如果想得到單引號或雙引號需要加轉義字符\.如 \’ , \” 一个特殊的操作符是字符串重复操作符,由小写的字母x 表示。这种操作能把操 作符左边字符串重复操作符右边数字那么多次: “fred”x 3 # “fredfredfred” 字符串可由. 操作符连接 “hello”. “world” # 同于“helloworld” “hello”. ‘’. “world”#同于“hello world”
Perl 最常用的默认变量:$_
如果在foreach 循环中省略了控制变量,那Perl 会使用其默认的变量:$_ foreach(1..10){ #使用默认的变量$_ print “I can count to $_!\n”; } 虽然它不是Perl 中唯一的默认变量,但无疑是使用的最普遍的。你将在许多例 子中看到Perl 在没有要求它使用某个变量或值时,会自动使用变量$_,这将节约 程序员大量的时间来思考使用哪一个变量。
perl基础
最后会在第8章中介绍如何在Windows95、WindowsNT这些32位操作系统中使用Peri来写CGI应用程序。求知心
切的您,是不是迫不急待地想知道Perl的功能是多么的强大呢?
6.2 如何使用Perl来写程序
如果在系统中已安装了Perl的话,我们可以用“which perl”,或是“which
语言来当主角!读者看到这里一定会觉得功能这样强大的语言Perl一定很难学!这您就大错特错啦,Perl是很容
易上手的,它的语法和C语言很接近,对于原本熟悉C语言的人来说,Perl是很容易上手的,只要有一点C语言的基
础,再加上几个小时的学习时间就可以很轻易地用Perl语言写一个简单的CGI应用程序,至于那些没有C语言基
delete$NAMES{3};
#将关联数组中key值为3的一对key-value删除掉,
#此时%NAMES=(1'"one",2'"two"),
@X=%NAMES;
#将关联数组NAMES指派给数组X
#此时@X=(1'"one",2'"two");
%Y=@x;
#将数组X指派给关联数组Y
了解Perl语言是这么容易上手。只要把这些基本语法熟悉之后,就可以得心应手地用Perl来写CGI应用程序。
6.3.1 Perl语言的变量
Perl的变量基本上有三种即纯量变量(ScaiarVariable)、数组(Array)、关联数组(Associative
array),
而以下是这些变量的使用方法:
$Strl=www";
#将www这个字符串指定给$Strl这个纯量变量;
切的您,是不是迫不急待地想知道Perl的功能是多么的强大呢?
6.2 如何使用Perl来写程序
如果在系统中已安装了Perl的话,我们可以用“which perl”,或是“which
语言来当主角!读者看到这里一定会觉得功能这样强大的语言Perl一定很难学!这您就大错特错啦,Perl是很容
易上手的,它的语法和C语言很接近,对于原本熟悉C语言的人来说,Perl是很容易上手的,只要有一点C语言的基
础,再加上几个小时的学习时间就可以很轻易地用Perl语言写一个简单的CGI应用程序,至于那些没有C语言基
delete$NAMES{3};
#将关联数组中key值为3的一对key-value删除掉,
#此时%NAMES=(1'"one",2'"two"),
@X=%NAMES;
#将关联数组NAMES指派给数组X
#此时@X=(1'"one",2'"two");
%Y=@x;
#将数组X指派给关联数组Y
了解Perl语言是这么容易上手。只要把这些基本语法熟悉之后,就可以得心应手地用Perl来写CGI应用程序。
6.3.1 Perl语言的变量
Perl的变量基本上有三种即纯量变量(ScaiarVariable)、数组(Array)、关联数组(Associative
array),
而以下是这些变量的使用方法:
$Strl=www";
#将www这个字符串指定给$Strl这个纯量变量;
PERL使用入门PPT课件
2.次方(**). $a=$b**6
3.++,+=,--,
4.logical operator: &&, ||, not,or,xor
5.逗號運算子: , =>
6.位移: >>,<< (只能用於 int 變量.)
7.關連: >,<,<=,>=,==,!= (數字)
gt,lt,le,ge,eq,ne,cmp (文字)
$a1=\@a;$a2=\@b;$a3=\@c; @d=($a1,$a2,$a3);
#print @d; print $d[0][1];
2020/10/13
T.B. Chen
10
實例演練-2:
print "\nOpen a text file.\n";
open IN, "<data1.txt"; #read a text file
2020/10/13
T.B. Chen
2
2.PERL的資料型態
PERL有二種資料型別: 純量(SCALAR)與串列(LIST) 純量: $ : 純量變數 串列: 1.@: 陣列 2.%: hash
2020/10/13
T.B. Chen
3
3.PERL的運算子
1.加(+),減(-),乘(*),除(/)
my @tmp = split(/\s/, $raw[$i]);
$ref[$i]=\@tmp; #each line is a refence in @ref
}
print "Totl $i lines in the document.\n";
perl第4章PPT教学课件
常用格式: %d: 十进制整数 %s: 字符串 %f:浮点数 %g:代表任何数值形式,Perl会自动判断恰当的输出数值形式。
2020/12/10
6
2020/12/10
7
格式字符串之间可以插入任意字符。
$user="paul"; $date=30; printf "hello, %s, your pwd expires in %d days.",$user, $date;
# prints "0XC"
printf '%#b', 12;
# prints "0b1100"
printf '%#B', 12;Байду номын сангаас
# prints "0B1100"
2020/12/10
9
指定输出宽度
类似于C语言:
printf "%6d", 42;
#右对齐,输出_ _ _ _42
printf "%2d", 2001;
%d会将数值自动转换成整数,即使输出列表是浮点数或 其他。 printf "your pwd expires in %d days", 17.50;
%g自动选择输出的数值形式。 printf "%g %g %g",3.5,4, "string";
2020/12/10
8
格式参数索引 printf '%2$d %1$d', 12, 34; printf '%3$d %d %1$d', 1, 2, 3;
2020/12/10
2020/12/10
6
2020/12/10
7
格式字符串之间可以插入任意字符。
$user="paul"; $date=30; printf "hello, %s, your pwd expires in %d days.",$user, $date;
# prints "0XC"
printf '%#b', 12;
# prints "0b1100"
printf '%#B', 12;Байду номын сангаас
# prints "0B1100"
2020/12/10
9
指定输出宽度
类似于C语言:
printf "%6d", 42;
#右对齐,输出_ _ _ _42
printf "%2d", 2001;
%d会将数值自动转换成整数,即使输出列表是浮点数或 其他。 printf "your pwd expires in %d days", 17.50;
%g自动选择输出的数值形式。 printf "%g %g %g",3.5,4, "string";
2020/12/10
8
格式参数索引 printf '%2$d %1$d', 12, 34; printf '%3$d %d %1$d', 1, 2, 3;
2020/12/10
Perl语言入门
往数组后面加元素: push @arr, (4,5);
# @arr: (1,2,3)
# @arr: rt 函数
按数字大小排序 :@SORT = sort {$a <=> $b} @array; 按字典顺序排序:@SORT = sort {$a cmp $b} @array; # 1 默认是按字典顺序排序:@SORT = sort @array; # 2 默认是从大到小排序 # 3 倒序排序:把上式的$a 和 $b 位置调换
shift、pop、unshift、push函数
my @arr = (1,2,3,4); 取数组的第一个元素: my $first = shift @arr; # @arr: (2,3,4) 取数组的最后一个元素: my $last = pop @arr;
# @arr: (2,3)
往数组开头加元素: unshift @arr, 1;
OUTLINE
1. Perl简介 2. 基本操作 3. 控制结构 4. 模式匹配 5. 进程管理
6. 实战 总结
2 基本操作
• 基本数据类型:
标量、数组、哈希、函数 $、@、%、&
• 基本操作符
算术、比较、逻辑、条件
• 文件读写
2.1 基本的数据类型
• 标量,指示符:$
my $aim; $aim = 1000000000; my $act = 1.5; $act = 1.5e+10; my $gain = “4,5000w”; $gain = ‘Zhang Gongzi’; my $reality = undef; # 整型 # 浮点数 # 浮点数 # 字符串 # 字符串 # 相当于my $reality;
# @arr: (1,2,3)
# @arr: rt 函数
按数字大小排序 :@SORT = sort {$a <=> $b} @array; 按字典顺序排序:@SORT = sort {$a cmp $b} @array; # 1 默认是按字典顺序排序:@SORT = sort @array; # 2 默认是从大到小排序 # 3 倒序排序:把上式的$a 和 $b 位置调换
shift、pop、unshift、push函数
my @arr = (1,2,3,4); 取数组的第一个元素: my $first = shift @arr; # @arr: (2,3,4) 取数组的最后一个元素: my $last = pop @arr;
# @arr: (2,3)
往数组开头加元素: unshift @arr, 1;
OUTLINE
1. Perl简介 2. 基本操作 3. 控制结构 4. 模式匹配 5. 进程管理
6. 实战 总结
2 基本操作
• 基本数据类型:
标量、数组、哈希、函数 $、@、%、&
• 基本操作符
算术、比较、逻辑、条件
• 文件读写
2.1 基本的数据类型
• 标量,指示符:$
my $aim; $aim = 1000000000; my $act = 1.5; $act = 1.5e+10; my $gain = “4,5000w”; $gain = ‘Zhang Gongzi’; my $reality = undef; # 整型 # 浮点数 # 浮点数 # 字符串 # 字符串 # 相当于my $reality;
Perl语言第一章2017
课程考核方式
课程出勤率:20% 上机作业:20% 课程项目:20% 期末笔试考试:40%
你知道哪些编程语言?
第一章 Perl语言简介
刘融 华中农业大学生物信息中心
什么是Perl?
Perl被称为“实用报表提取语言”(Practical Extraction and Report Language), 借取了C、sed、awk、shell script以及很多其他程序语言的特性,由Larry Wall于1987 年设计发表,并由他不断更新维护的编程语言。
Linux wget /src/5.0/perl-5.18.0.tar.gz tar zxvf perl-5.18.0.tar.gz cd perl-5.18.0 ./Configure -des -Dprefix=/usr/bin/perl (指定安装目录) make make test make install
Perl的进化史
1987 Larry Wall released Perl 1988 Perl 2 released 1989 Perl 3 released 1991 Perl 4 released 1994 Perl 5 released 2000 – present Perl 6 “in development”
标量变量
整型
十进制:$var0 = 12345; 八进制:$var1 = 047;
#以0开头, 等于十进制的39 十六进制:$var2 = 0x1f;
#以0x开头, 等于十进制的31 二进制:$val3 =0b11111111;
#以0b开头, 等于十进制的255
不同进制间的转换
浮点型
$val0 = 11.4; $var1 = -0.3; $val2 =.3; $val3 = 54.1e+02;
课程出勤率:20% 上机作业:20% 课程项目:20% 期末笔试考试:40%
你知道哪些编程语言?
第一章 Perl语言简介
刘融 华中农业大学生物信息中心
什么是Perl?
Perl被称为“实用报表提取语言”(Practical Extraction and Report Language), 借取了C、sed、awk、shell script以及很多其他程序语言的特性,由Larry Wall于1987 年设计发表,并由他不断更新维护的编程语言。
Linux wget /src/5.0/perl-5.18.0.tar.gz tar zxvf perl-5.18.0.tar.gz cd perl-5.18.0 ./Configure -des -Dprefix=/usr/bin/perl (指定安装目录) make make test make install
Perl的进化史
1987 Larry Wall released Perl 1988 Perl 2 released 1989 Perl 3 released 1991 Perl 4 released 1994 Perl 5 released 2000 – present Perl 6 “in development”
标量变量
整型
十进制:$var0 = 12345; 八进制:$var1 = 047;
#以0开头, 等于十进制的39 十六进制:$var2 = 0x1f;
#以0x开头, 等于十进制的31 二进制:$val3 =0b11111111;
#以0b开头, 等于十进制的255
不同进制间的转换
浮点型
$val0 = 11.4; $var1 = -0.3; $val2 =.3; $val3 = 54.1e+02;
Perl语言入门_1
The length of an array $len_of_array=@my_array; $len_of_array=scalar @my_array; $len_of_array=$#array+1; Change array length $#array=10; # some array elements may not defined
当双引号括起来的字符串中间含有$符 号时,会进行变量替换 $name=”Alice“; $hello=“hello $name”; $test=“\n, \t, \007, \x63”; #变量$hello的内容为”hello Alice” 如果为单引号,则不进行替换
字符串函数
列表的操作
push和pop是在队尾进行的 shift和unshift是在队头进行的
0
1
2
3
4
5
列表的@b; @c=(1..4,@a); 数组@a的长度可以用$#a+1得到 注意数组的长度是在运行时决定的
Array related
不需要编译 运行平台:Windows, UNIX and LINUX
Perl的优点和缺点
优点:
跨平台 擅长文本处理操作 实用高效
缺点:
不擅长数学计算 不擅长实时任务 代码难读
Perl的安装
Windows平台下的Perl安装程序 在ftp搜索引擎里搜索,
ActivePerl *perl*.msi
Removing newlines
chomp($string); chomp(@list); # one element # every element
当双引号括起来的字符串中间含有$符 号时,会进行变量替换 $name=”Alice“; $hello=“hello $name”; $test=“\n, \t, \007, \x63”; #变量$hello的内容为”hello Alice” 如果为单引号,则不进行替换
字符串函数
列表的操作
push和pop是在队尾进行的 shift和unshift是在队头进行的
0
1
2
3
4
5
列表的@b; @c=(1..4,@a); 数组@a的长度可以用$#a+1得到 注意数组的长度是在运行时决定的
Array related
不需要编译 运行平台:Windows, UNIX and LINUX
Perl的优点和缺点
优点:
跨平台 擅长文本处理操作 实用高效
缺点:
不擅长数学计算 不擅长实时任务 代码难读
Perl的安装
Windows平台下的Perl安装程序 在ftp搜索引擎里搜索,
ActivePerl *perl*.msi
Removing newlines
chomp($string); chomp(@list); # one element # every element
Perl语言基础.ppt
2020/2/13
14
Perl语言控制结构-条件判断
➢ 条件判断 if ( <expreslock_1> } elsif ( <expression> ) {
<statement_block_2> } ... else{
<statement_block_3> }
6. do循环至少执行一次循环。 7. 循环控制
退出循环为last,与C中的break作用相同;执行下一个循环为next,与C 中的continue作用相同;PERL特有的一个命令是redo,其含义是重复此 次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do 循环中不起作用。 8. 传统的goto label;语句。
➢Perl语言控制结构
➢ Perl语言模式匹配 ➢ Perl语言子程序
2020/2/13
13
Perl语言控制结构
➢ 条件判断 ➢ 循环:
1、while循环 2、until循环 3、for循环 4、针对列表(数组)每个元素的foreach循环 5、do循环 6、循环控制 7、传统的goto语句
➢ 单行条件
#$b等于数组@int的第一个元素,所以$b=1 $C=@int[0];
#$c也是会等于数组@int的第一个元素,所以$c=1,因此要呼叫数组中的值有以上两 种方法
2020/2/13
8
Perl语言数据结构- scalars数组
$int[0]=2; #将2这个数值指定给数组@int的第一个元素此时@int=(2,3,5,7,9);
告语言
2020/2/13
3
➢ Perl语言特性
➢Perl语言数据结构
UNIX初级讲座Ch07Perl编程语言.ppt
– shift()和unshift()运算符
• 类似与push()和pop(),只不过他们是对数组左边 的元素操作。
2020/4/22
BUPT MultiMedia Hop Lee
26
– reverse()运算符
• 返回数组元素反序后的结果,但是不改变参数。
– sort()运算符
• 将所有参数都当成是ASCII字符串,按升序方式排 序,返回排序后的结果但是不改变原列表。
2020/4/22
BUPT MultiMedia Hop Lee
7
• Perl所处理的标量数据包括数字和字符串 两大类。
• Perl的数值型数据只有一种类型:浮点数, 所有的整数都将当作等效的浮点数来处理。 浮点型常量的表示方式和C语言里一样。
2020/4/22
BUPT MultiMedia Hop Lee
• \L\E
将\L和\E之间的字符转换成小写。
2020/4/22
BUPT MultiMedia Hop Lee
15
• \l • \U \E • \u • \cC • \x## • \0ooo • \\ •\
将其后的字符转换成小写。 将\U和\E之间的字符转换成大写。 将其后的字符转换成大写。 插入控制字符C。 十六进制数##。 八进制数ooo。 反斜杠。 按原样输出下一个字符,例如:\$ 输出$。
8
• Perl的字符串类型数据的取值可以是整个 ASCII表,并且其长度遵循“无内置限制” 的原则-从0直到填满内存。
• 字符串常量有两种形式:单引号字符串和 双引号字符串。
– 单引号字符串:单引号用于表示字符串的边界, 其中可以包含任意字符并且取消所有元字符的 特殊含义(唯一的例外是前后相连的\\或\‘);
• 类似与push()和pop(),只不过他们是对数组左边 的元素操作。
2020/4/22
BUPT MultiMedia Hop Lee
26
– reverse()运算符
• 返回数组元素反序后的结果,但是不改变参数。
– sort()运算符
• 将所有参数都当成是ASCII字符串,按升序方式排 序,返回排序后的结果但是不改变原列表。
2020/4/22
BUPT MultiMedia Hop Lee
7
• Perl所处理的标量数据包括数字和字符串 两大类。
• Perl的数值型数据只有一种类型:浮点数, 所有的整数都将当作等效的浮点数来处理。 浮点型常量的表示方式和C语言里一样。
2020/4/22
BUPT MultiMedia Hop Lee
• \L\E
将\L和\E之间的字符转换成小写。
2020/4/22
BUPT MultiMedia Hop Lee
15
• \l • \U \E • \u • \cC • \x## • \0ooo • \\ •\
将其后的字符转换成小写。 将\U和\E之间的字符转换成大写。 将其后的字符转换成大写。 插入控制字符C。 十六进制数##。 八进制数ooo。 反斜杠。 按原样输出下一个字符,例如:\$ 输出$。
8
• Perl的字符串类型数据的取值可以是整个 ASCII表,并且其长度遵循“无内置限制” 的原则-从0直到填满内存。
• 字符串常量有两种形式:单引号字符串和 双引号字符串。
– 单引号字符串:单引号用于表示字符串的边界, 其中可以包含任意字符并且取消所有元字符的 特殊含义(唯一的例外是前后相连的\\或\‘);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/2/13
6
Perl语言数据结构- scalars数组
数组操作与乐高积木 示例: @namel=(“tom”,“mary”);
#将“tom”,“mary”这两个字符串指定给数组@name1 @name2=@name1;
#此时的@name2=("tom","mary") @pame3=("john",@name1);
$int[0,1]=[1,3]; #将1指定给数组@int的第一个元素,且将3指定给数组@int的第二个元素的,所以此 时@int=(1,3,5,7,9);
@int[0,1]=@int[1,0]; #将数组@int的前两个元素交换此时@int=(3,1,5,7,9)
($int[0],$int[1])=($int[l],$int[0]); #也是将数组@int的前两个元素交换此时@int=(1,3,5,7,9)
@X=%NAMES; #将关联数组NAMES指派给数组X#此时@X=(1,"one",2,"two");
@data=@int[0,l]; #此时@date=(1,3);
$int[5]=11; #将11这个数值指定给数组@int中第六个元素此时@int=(1,3,5,7,9,11)
2020/2/13
9
Perl语言数据结构- scalars联合数组
➢ 联合数组也叫hash结构、关联数组等。 ➢ 联合数组也是数组的一种,是由不同的纯量变量所组成。 ➢ 联合数组中的元素是由成对的key-value所组成 。
#此时的 (name3=("john","tom","mary") ($one,@name4)=@name3;
#此时的$one="john",而 @name4=("tom"'"mary") @namel=0;
#此时@name1为一个空数组
2020/2/13
7
Perl语言数据结构- scalars数组
#把key为3所对应的value更改成"three"此时%NAMES=(1,"one",2,"two",3,"three"); delete $NAMES{3};
#将关联数组中key值为3的一对key-value删除掉,#此时%NAMES=(1,"one",2,"two");
2020/2/13
11
Perl语言数据结构- scalars联合数组
定义:
%ARRAY=(keyl,value1,key2,value2,key3,value3...); 增加: $ARRAY{key}=value;
取出:
$get=$ARRAY{key}; 删除 delete $ARRAY{key};
2020/2/13
10
Perl语言数据结构- scalars联合数组
#$b等于数组@int的第一个元素,所以$b=1 $C=@int[0];
#$c也是会等于数组@int的第一个元素,所以$c=1,因此要呼叫数组中的值有以上两 种方法
2020/2/13
8
Perl语言数据结构- scalars数组
$int[0]=2; #将2这个数值指定给数组@int的第一个元素此时@int=(2,3,5,7,9);
@int=(1,3,5,7,9); $x=@int;
#将一个数组指定给一纯量变量,就会返回数组元素的个数,所以此时的$x=5 $x=$#int;
#$#这个变量会返回数组最后一个元素的index 所以此时$x=4 ($x)=@int;
#$x等于数组@int的第一个元素的值,所以此时$x=1 $b=$int[0];
告语言
2020/2/13
3
➢ Perl语言特性
➢Perl语言数据结构
➢ Perl语言控制结构 ➢ Perl语言模式匹配 ➢ Perl语言子程序
2020/2/13
4
Perl语言数据结构
➢ scalars
用$开头定义的变量,比如$foo
➢ scalars数组
用@开头定义的变量,比如@foo,里面的每个元素都是scalars ➢ scalars联合数组
Perl语言基础
2020/2/13
1
➢Perl语言特性
➢ Perl语言数据结构 ➢ Perl语言控制结构 ➢ Perl语言模式匹配 ➢ Perl语言子程序
2020/2/13
ห้องสมุดไป่ตู้
2
Perl语言特性
➢ 解释性编程语言 ➢ 开源软件(/) ➢ Perl(Practical Extraction and Report Language)文字分析报
用%开头定义的变量,比如%foo ,里面的每个元素都是scalars NOTE:
1.Perl变量名称对大小写敏感, $foo和$Foo是两个不同的变量。 2.Perl每种数据结构有专门的命名空间, $foo和@foo是两个不同的变量。 3.显式申明一个变量使用my或者our。
2020/2/13
5
Perl语言数据结构- scalars
在Perl语言中变量的使用不像在C语言中还要事先申明,在使用纯量变量的时候要先加上$这 个符号,要注意的是如果指定的纯量变量是一个字符串的话,就要加上“”这个双引号符号了 。如果是一个数值的话,就不用加上“”这个符号了。
示例: my ($Str1,$str2); my str3;
$Strl="www"; #将www这个字符串指定给$Strl这个纯量变量; $str2="cgi"; #将cgi这个字符串指定给$str2这个纯量变量; $str3=$strl.$str2; #.就是把两个字符串连起来,所以 $str3="wwwc20"; $int=5; #将5这个数字指定给$int这个纯量变量; $int=3+2; #此时$int=5; $int=l0;$int++; #此时$int=10+l=11; $int=l0,$int+=5; #此时$int=10+5=15;
使用示例:
%NAMES=〈I,"one",2,"two"); $one=$NAMES{1};
#此时$one等于"one“ $two=$NAMES{2};
#此时$two等于"two“ $NAMES{3}="third";
#增加一对key-value到关联数组NAMES中,此时的%NAMES =(1,"one",2,"two",3,"third"); $NAMES{3}="three";