perl的一些基本用法

合集下载

perl常用实例

perl常用实例

perl常用实例(实用版)目录1.Perl 简介2.Perl 常用实例2.1 文本处理2.2 数据分析2.3 网络编程2.4 Web 开发正文【Perl 简介】Perl(Practical Extraction and Reporting Language)是一种高级脚本语言,主要用于文本处理、数据分析、网络编程和 Web 开发等领域。

它具有丰富的语法和强大的功能,可以简化各种复杂任务的实现。

Perl 最早由 Larry Wall 在 1987 年开发,现在已成为 IT 行业广泛使用的编程语言之一。

【Perl 常用实例】【2.1 文本处理】Perl 在文本处理方面的应用非常广泛,例如:- 文件读写:Perl 可以方便地对文件进行读取和写入操作,实现文件的备份、合并等操作。

- 字符串处理:Perl 提供了丰富的字符串操作函数,可以实现字符串的匹配、替换、连接等功能。

- 正则表达式:Perl 的正则表达式功能强大,可以方便地对文本进行查找、替换等操作。

【2.2 数据分析】Perl 在数据分析方面的应用也非常广泛,例如:- 数据库连接:Perl 可以连接各种数据库,进行数据的增删改查操作。

- 数据处理:Perl 可以对数据进行排序、筛选、分组等操作,实现数据的分析和处理。

- 数据可视化:Perl 可以生成各种图表,实现数据的可视化展示。

【2.3 网络编程】Perl 在网络编程方面的应用也非常丰富,例如:- Socket 编程:Perl 可以通过 Socket 实现客户端和服务器的通信,实现网络应用的开发。

- HTTP 编程:Perl 可以实现 HTTP 服务器,进行 Web 应用的开发。

- FTP 编程:Perl 可以实现 FTP 客户端和服务器,进行文件的上传和下载。

【2.4 Web 开发】Perl 在 Web 开发方面的应用也非常广泛,例如:- CGI 编程:Perl 可以通过 CGI 实现与 Web 服务器的交互,生成动态网页。

perl型正则表达式提取

perl型正则表达式提取

perl型正则表达式提取正则表达式(Regular Expression)是一种用来描述、匹配、处理和操作字符串的强大工具。

在Perl中,正则表达式的支持非常强大,可以用来解决各种字符串处理的问题。

本文将使用Perl正则表达式提取标题,并以此为基础展开讨论。

一、什么是正则表达式正则表达式是一种特殊的字符串模式,用来匹配、查找和替换其他字符串。

它由一系列字符和特殊字符组成,可以表示一定规律的字符串集合。

正则表达式具有强大的匹配能力,可以用来解决各种字符串处理问题。

二、Perl正则表达式的基本语法在Perl中,正则表达式通常以斜杠(/)包围,例如:/pattern/。

其中,pattern表示要匹配的模式。

Perl的正则表达式语法非常灵活,支持各种模式匹配和高级特性。

1. 元字符Perl正则表达式中的元字符有特殊的意义,用于匹配特定的字符或字符类。

常见的元字符包括:- .:匹配任意单个字符,除了换行符(\n)。

- \d:匹配任意一个数字字符。

- \w:匹配任意一个字母、数字或下划线字符。

- \s:匹配任意一个空白字符,包括空格、制表符、换行符等。

- ^:匹配字符串的开始。

- $:匹配字符串的结束。

- []:匹配方括号内的任意一个字符。

- ():分组匹配,用于提取匹配的子串。

2. 量词量词用于指定匹配模式的重复次数。

常见的量词包括:- *:匹配前面的模式零次或多次。

- +:匹配前面的模式一次或多次。

- ?:匹配前面的模式零次或一次。

- {n}:匹配前面的模式恰好n次。

- {n,}:匹配前面的模式至少n次。

- {n,m}:匹配前面的模式至少n次,最多m次。

三、使用Perl正则表达式提取标题在实际应用中,使用Perl正则表达式提取标题是一项常见的任务。

下面以一个示例文本为例,演示如何使用Perl正则表达式提取标题。

示例文本:```1. 标题1这是第一个标题的内容。

2. 标题2这是第二个标题的内容。

3. 标题3这是第三个标题的内容。

4-Perl基础【兰州大学生物信息学】

4-Perl基础【兰州大学生物信息学】
Perl 的一些基础概念
提纲
• 1. Perl 的数据类型 • 2. Perl 的控制结构 • 3.Perl 中的正则表达式 • 4. 其他高频函数 • 5. BioPerl的简单使用 • 6. 关于Perl 应该努力的方向 • 7. 几个值得保持的好习惯 • 调试常见问题
1. Perl 的数据类型
网络资源
• /yumtaoist题
• 变量没有赋值 • 变量没有定义 (拼写错误) • 文件格式不标准
• 意想不到的奇怪空白 (s/\s+//g); • 文件不完整 (重新下载)
谢谢
1.3 哈希
• 定义赋值: my %rpkm; $rpkm{$geneId}{$sample}=$rpkm; • 调用: $rpkm{$geneId}{$sample}; • 处理方法: keys, values, exists, delete • 遍历多层哈希 %{ }
Foreach my $geneId (keys %rpkm){ foreach my $sample(keys %{$rpkm{$geneId}}){ print “$rpkm{$geneId}{$sample}\n”; }
• 标量变量 $ • 列表 @ • 哈希 %
1.1 标量变量
• 定义赋值: my $value = 1 • 调用: 正确书写变量名字 $value • 处理方法: 各种运算符
1.2 列表
• 定义赋值: My @array =(‘a’,1,”world”); • 调用: @array,$array[0] • 处理方法: push, pop, reverse, sort
一般紧随文件读取操作使用43根据坐标提取序列substr起始坐标为044脚本内调用linux命令关于perl应该努力的方向增加程序可读性一致清晰的变量命名添加必要注释61增加程序稳定性和准确性62子程序的使用大型的工作流程给未来写一个readme网络资源google调试常见问题文件不完整重新下载谢谢常用的有用数据库plantensemblephytoz基础概念同源基因

Perl语法中Perl运算符用法指南

Perl语法中Perl运算符用法指南

Perl语法中Perl运算符⽤法指南1.Perl运算符1.1 算数运算符 Perl固然在变量与数据范例都和C⼤不不异,然⽽它的运算符和C险些不异,除了C的范例转换运算符type,指针引⽤运算符*ptr和布局成员选择符,其他C的运算符险些完全呈现在Perl⾥,Perl新增了⼏个新运算符,好⽐在字符处置⽅⾯.◆Perl到今朝撑持的算数运算符有⼀些⼏种:+加法运算符-减法运算符*乘运算符/除运算符(只对浮点数运算)%取模运算符(只对整数运算)下⾯给出Perl算数运算的⼀些实例:$x=2.5;$y=3;print($x+2*$y);print(7/$y);printint(7/$y);print(7%$y);print(7.5%$y);Perl还撑持递增和递减运算符:++递加--递减◆Perl新增了乘⽅运算符:**,请看下⾯的例⼦:$x=2**3;#2的3次⽅$y=2**0.5;#2的平⽅根$z=-2**-3;#成果是:-0.1251.2 Perl语法之位运算符位运算符对⼆进制表达式的整数情势举⾏处置,运算成果为整数.若是位运算符的操纵数是字符串或分数,Perl起⾸把它们转换成整数,并⽤32位长整数情势暗⽰它们.Perl撑持全部的C说话运算符:&位与运算符.位⾮运算符<<位左移运算符>>位右移运算符有关位运算符的具体内容,请参看C说话有关的内容,这⾥我们就未⼏讲了,只举⼏个例⼦:$x=5;$y=3;print$x|$y;#成果是7(⼆进制暗⽰:111)print$x&$y;#成果是1(⼆进制暗⽰:001)print$x<<2;#成果是20(⼆进制暗⽰:10100)print$x>>1;#成果是2(⼆进制暗⽰:10)1.3Perl语法之⽐⼒运算符 ⽐⼒运算符的功效是⽐⼒两个操纵数的值.Perl在举⾏⽐⼒运算前,会先将字符操纵数转换为数字.Perl⽤专门的字符串⽐⼒运算符对纯字符举⾏表运算.1.4Perl语法之逻辑运算符逻辑运算符测试布尔表达式的值,其成果为真或假.Perl以为逻辑运算符的每个操纵数都为布尔值(即真或假).Perl的逻辑运算符包罗:||逻辑或运算符;&&逻辑与运算符.Perl按从左到右的挨次计较逻辑表达式.当逻辑或运算符的⼀个操纵数为真,⼤概当逻辑与运算符的⼀个操纵数为假时,Perl 将停⽌逻辑表达式的计较.Perl操纵这种短回路计值快速计较表达式的值.是以,这两个运算符也叫短回路AND和短回路OR.!负运算符:前提运算符,挨次计值符运算符!否认操纵数的布尔值,相称于逻辑⾮.?:前提运算符,有3个操纵数,表达情势为:condition?true-result:false-result$access=($usereq'流云'?'root':'guest');挨次运算符(,)从严酷意义上讲并不是逻辑运算符,由于它并不查抄操纵数的真假.Perl从左到右的计较逗号运算符,并返回最右边的操纵数,都好运算符是从C连续出来的,详细利⽤可以参考C⾥的⽤法,这⾥我就不累述了.1.5Perl语法之字符运算符因为Perl⾃⼰是为⽂本处置开辟的.是以,它增添很多新的字符串运算符.Perl的字符串运算符包罗:.字符毗连运算符x字符串复制运算符=~将⼀个变量绑定到模式⽴室!~将⼀个变量绑定到模式⽴室,取⾮前两个运算符⽐⼒简略.此刻看看例⼦:print'C'.'a'.'l'x2;#输出成果将是:Call;后两个运算符⾸要⽤于模式⽴室,今后将会有关于模式⽴室的详细解说,这⾥就未⼏说了,我们来看看它们的例⼦,以领会它们的感化:$text='本⽇下⾬了';print($text=~/下⾬/)?'本⽇下⾬了':'本⽇没下⾬';我们看到的例⼦可以发明是否变量中是否包罗我们所必要的字符串.1.6Perl语法之赋值运算符赋值运算符和C说话的赋值运算符差未⼏,以下是各类赋值运算符:=+=-=*=/=%=|=&=^=~=<<=>>=**==.=x=1.7Perl语法之Lvalue 在Perl和C说话中,lvalue暗⽰赋值运算符左边的实体.也便是说,lvalue与变量⼀样,可以给它分派值.⽐⽅在Perl号令⽂件中不克不及向字符串赋值,如"Bob"=32这个语句便是错误的!由于"Bob"不是⼀个lvalue,可是若是对$Bob赋值,如$Bob=32,这个语句便是准确的!由于变量$Bob是⼀个lvalue.在Perl中,任何故意义的lvalue只能暗⽰⼀个实体.⽐⽅下⾯的第⼀个语句列出了表的值(便是数组的值,只不外说法纷歧样⽽已),@color便是⼀个lvalue,第⼆个语句中,将表的值赋值给3个标量变量,3个变量便是lvalue:@color=($r,$g,$b);($r,$g,$b)=@color;Perl的赋值运算符对表举⾏处置时,可以不合错误整个表举⾏处置,⽽只针对表的某⼀个⼤概⼏个元素举⾏赋值:@times[2,5,9]=(20,40,10);($arg1,$arg2,@reset)=@ARGV;1.8Perl语法之表运算符 Perl包罗以下⼀些表运算符,⽽c没有:,表机关符..规模运算符x表复制运算符前⾯我们在先容"标量与数组变量"时,已经计划到了机关符(我以为叫分开符,更轻易明⽩些)规模运算符我们在⽤来建⽴数组下标规模时,也⽤到过!不外,请注重它的功效还远不⽌这个,它还可以⽤来作为返回从左边操纵数到右边操纵数之间挨次整数的规模(包罗摆布双⽅的操纵数).号令⽂件凡是同时操纵规模运算符缔造⼀个持续整数表:@digits=0..9;如许我们就缔造了⼀个表,其值为(0,1,2,3,4,5,6,7,8,9)表复制运算符是⼀个很是风趣的东东,我们来看⼀个例⼦:@copy_3=(1,2,3)x3;这个表有9元素,其值为(1,2,3,1,2,3,1,2,3)怎么样?很便利吧!1.9Perl语法之⽂件运算符Perl⼤⼤扩展了⽂件处置运算符.Perl⾄少有27个运算符在不打开⽂件的环境下,可以或许测试⽂件的信息,可是很不幸,因为Perl在最初是UNIX的东西,以是绝⼤⼤都的运算符在我们风⾏的平台上:WIN9X/NT体系⽆法利⽤.但万幸的是不是全数另有4个运算符绝对可⽤,并且功效不错哦!⼀下便是那4个运算符:-d测试⽂件是不是⼀个⽬次;-e测试⽂件是否存在;-s测试⽂件的巨细;-w测试⽂件是否是可写的;前两个运算符返回的是布尔值(即真或假),第3个运算符返回⽂件的巨细(以字节作为返回体例).下⾯是利⽤⽅式:复制代码代码如下:if(-e'Perl.exe'){print'Filesizeis:'-s'Perl.exe';}else{print'Can\'tfindPerl.exe\n';}(-w'SomeFile')||die"CannotwritetoSomeFile\n";。

PerlSort函数用法总结和使用实例.doc

PerlSort函数用法总结和使用实例.doc

PerlSort函数用法总结和使用实例一)sort函数用法sortLISTsortBLOCKLISTsortSUBNAMELISTsort的用法有如上3种形式。

它对LIST进行排序,并返回排序后的列表。

假如忽略了SUBNAME或BLOCK, sort 按标准字串比较顺序来进行(例如ASCII顺序)。

如果指定了SUBNAME,它实际上是个子函数的名字,该子函数对比2 个列表元素,并返回一个小于,等于,或大于0的整数,这依赖于元素以何种顺序来sort (升序,恒等,或降序)。

也可提供一个BLOCK 作为匿名子函数来代替SUBN AME,效果是一样的。

被比较的2个元素,会被临时赋值给变量和$1)。

它们以引用传递,所以不要修改$a或$13。

假如使用子函数,它不能是递归函数。

二)用法实例1.以数字顺序S ort代码如下:a rray= (8, 2, 3 2, 1,4, 16);print join (’’,sort {$al t:二gt; $b}ar ray),'ArT ; 打印结果是:复制代码代码如下:12481632与之一样的是:复制代码代码如下:subn umerically {$alt ;=gt ;$b }: print jo in (’ ’,sortn umericallya rray),/z\n/z:这个很容易理解哦,它只是按自然数的顺序进行sort,偶就不细讲了。

2. 1以ASC II顺序(非字典顺序)进行sort 代码如下:languages =qw(fortran lispcc++Per lpythonjava ); print jo in(’ ’,sortl anguages), ’ArT;打印结果:复制代码代码如下:Pe rlcc++fortr anjavalispp ython 这等同于:复制代码代码如下:p rint join (’ ’,sort {$acmp $b} language s), ’ArT;按ASCII的顺序进行排序,也没什么说的哦。

perl入门

perl入门

标量,指针,数组,哈希表(hash)和句柄。

一、标量我们先来看看标量,标量是perl语言中最简单的一种数据类型。

这种数据类型的变量可以是数字,字符串,浮点数,不作严格的区分。

在使用时在变量的名字前面加上一个“$”,表示是标量,相当于scalar中的第一个S。

使用以下格式进行定义:$myfirst= 123;# 数字123$mysecond="123";# 字符串123$mythird= "$myfirst,$mysecond";# 字符串123,123$myforth= '$myfirst,$mysecond';# 字符串$myfirst,$mysecond数字类型的标量可以使用0开头代表是8进制,用0x开头代表是16进制。

例如:$var1= 017;# 十进制的15$var2= 0xf;# 十进制的15还可以使用下面的格式:$var3= 123_456_7;# 1234567浮点数可以使用以下定义方式:$var4= 3.4;$var5= 4.3e+21;$var6= 234E345;perl中的字符串使用一个标量来表示,定义方式和c很像,但是在perl里面字符串不是用0来表示结束的。

而且使用双引号和单引号定义的字符串是不一样的。

使用双引号定义的字符串里面出现的变量名会进行替换,而且可以出现“\n\r\t”等控制字符。

而用单引号定义的就不可以了使用反斜杠引导的控制命令了(当然还可以使用反斜杠引道单引号和反斜杠),文本会按照字符串原来的样子保存。

但是用单引号定义可以使用多行文本,如下所示:$var7='这是一个使用多行字符串文本的例子';$var8= '\'\\';# 字符串'\二、数组在Perl中数组使用“@”引导,“@”的意义应该是相当于array中的第一个a吧(嘻嘻,猜的)。

数组初始化使用()。

perl循环语句

perl循环语句在Perl中,循环语句是控制程序重复执行操作的基本语法之一。

主要有for、while、do-while、foreach等循环语句,下面就来介绍一下它们的使用方法。

1、for循环for循环语法格式如下:for (初始化; 条件; 循环操作) {# 循环体}其中,初始化表示循环开始前需要执行的操作,条件为循环执行的条件,循环操作为每次循环后需要执行的操作。

示例:for ($i = 0; $i < 10; $i++) {print '$i';}2、while循环while循环语法格式如下:while (条件) {# 循环体}其中,条件为循环执行的条件。

示例:$i = 0;while ($i < 10) {print '$i';$i++;}3、do-while循环do-while循环语法格式如下: do {# 循环体} while (条件);其中,条件为循环执行的条件。

示例:$i = 0;do {print '$i';$i++;} while ($i < 10);4、foreach循环foreach循环语法格式如下:foreach $var (列表) {# 循环体}其中,列表为需要循环的值的列表,$var为每次循环中需要处理的变量。

示例:@arr = (1, 2, 3, 4, 5);foreach $num (@arr) {print '$num';}以上就是Perl中循环语句的使用方法,可以根据实际情况选择不同的循环语句来实现程序中的重复操作。

perl 语法规则

perl 语法规则Perl 语法规则是指在使用 Perl 编程语言时需要遵守的特定规范和语法约定。

遵循这些规则可以确保编写的 Perl 代码具有良好的可读性、可维护性和可扩展性。

1. 变量命名规则:在 Perl 中,变量名由字母、数字和下划线组成,必须以字母或下划线开头,且区分大小写。

变量名应尽量具有描述性,易于理解其含义。

2. 注释:在 Perl 中,使用 "#" 符号来添加注释,注释可以用于解释代码的功能和逻辑,以及提供必要的说明和说明。

注释可以增加代码的可读性和清晰度。

3. 变量声明与赋值:在 Perl 中,可以使用 my 关键字声明变量,并使用等号"=" 进行赋值。

例如,`my $name = "John";` 声明并初始化了一个名为 `$name` 的变量。

4. 数据类型:Perl 支持多种数据类型,包括标量(scalar)、数组(array)、哈希(hash)和布尔(boolean)等。

在使用数据类型时,需要根据具体需求选择合适的类型。

5. 运算符:Perl 支持常见的数学运算符(如加号、减号、乘号、除号等),逻辑运算符(如与、或、非等),以及比较运算符(如等于、不等于、大于、小于等)。

6. 控制流语句:Perl 提供了丰富多样的控制流语句,如条件语句(if、else、elsif)、循环语句(for、while、do-while)、跳转语句(next、last、redo)等,用于控制程序的执行流程。

7. 子程序:在 Perl 中,可以使用 `sub` 关键字定义子程序(函数),并通过子程序来封装可重复使用的代码块。

子程序具有参数和返回值,可以提高代码的模块化和可维护性。

8. 文件操作:Perl 提供了丰富的文件操作函数,可以读取文件内容、写入文件内容、重命名文件、删除文件等。

使用这些函数可以处理文件输入输出,实现文件的读写操作。

perl中map,sort,grep用法总结

简简单单讲map(一)map函数map BLOCK LISTmap EXPR, LISTmap函数对LIST里的每个元素按BLOCK或EXPR进行计算,遍历LIST时,临时将LIST 里的每个元素赋值给$_变量。

map对每次的计算返回一个结果列表,它在列表上下文里计算BLOCK或EXPR。

每个LIST元素可能在输出列表里产生0个,1个,或多个元素。

(仙子注:上文是说遍历每个LIST元素时产生一个结果列表,而不是说总的map结果是个列表,不要搞混了哦。

)在标量上下文里,map返回结果列表的元素数量。

在HASH上下文里,输出列表(a,b,c,d...)会变成这样的形式:( a =>; b, c =>; d, ... )。

假如输出列表的元素数量非对称,那么最后的hash元素的值就是undef了。

避免在BLOCK或EXPR里修改$_,因为这会修改LIST里的元素。

另外,避免使用map返回的的列表作为左值,因为这也会修改LIST里的元素。

(所谓左值,就是在某个表达式左边的变量。

)(二)Map vs. grep vs. foreachmap跟grep一样,从数组里选择元素。

下列2句是一样的:@selected = grep EXPR, @input;@selected = map { if (EXPR) { $_ } } @input;另外,map也是foreach陈述的特殊形式。

假如@transformed数组当前未定义或为空,那么下列2句亦相等:foreach (@input) { push @transformed, EXPR; }@transformed = map EXPR, @input;通常,用grep来从数组里选择元素,用map来从数组里转换元素。

当然,数组处理也能使用标准的循环语句来完成(foreach, for, while, until, do while, do until, redo)。

perl正则表达式基础

perl正则表达式基础Perl正则表达式是一种高级文本模式匹配工具,它可以帮助我们在字符流中搜索、提取和替换特定的文本模式。

中括号在正则表达式中扮演着非常重要的角色,它可以用于定义一个字符集或字符范围,从而更灵活地匹配想要的字符。

本文将介绍正则表达式中的中括号以及相关的用法和技巧。

首先,让我们了解一下中括号在正则表达式中的基本用法。

中括号中包含想要匹配的字符集,它可以匹配其中任意一个字符。

例如,正则表达式`[abc]`将匹配字符'a'或'b'或'c'。

方括号内的字符集不区分大小写,因此`[abc]`也可以匹配'ABC'中的任意一个字母。

中括号还可以用于定义字符范围。

例如,正则表达式`[a-z]`将匹配任意小写字母,而`[A-Z]`将匹配任意大写字母。

同样地,我们也可以使用多个字符范围,例如`[a-zA-Z]`将匹配任意字母。

除了匹配单个字符或字符范围外,中括号还可以用于排除特定字符。

在中括号的首位添加一个脱字符(^)可以实现这个功能。

例如,正则表达式`[^0-9]`将匹配除了数字之外的任意字符。

中括号还可以用于匹配常见的字符类型。

例如,我们可以使用`\d`匹配任意数字字符,`\w`匹配任意字母、数字或下划线字符,`\s`匹配任意空白字符(包括空格、制表符、换行符等)。

这些字符类型可以与中括号一起使用,例如,正则表达式`[\d\s]`将匹配任意数字字符或空白字符。

在中括号内,我们还可以使用特殊字符来表示一些常见的字符集。

例如,正则表达式`[.]`将匹配点号字符(`.`),正则表达式`[+]`将匹配加号字符(`+`)。

如果想要匹配字符`[`,`(`,我们可以使用转义字符(`\`)来实现,即正则表达式`\[ \(`。

除了上述基本用法外,中括号还可以用于定义更复杂的字符集。

例如,我们可以在中括号内连续使用字符范围。

例如,正则表达式`[a-zA-Z0-9]`将匹配任意字母或数字字符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

perl的一些基本用法.txt如果青春的时光在闲散中度过,那么回忆岁月将是一场凄凉的悲剧。杂草多的地方庄稼少,空话多的地方智慧少。即使路上没有花朵,我仍可以欣赏荒芜。perl基本用法2010-02-10 09:50s/\s+/ /g 将空白符变成一个空格;s/^\s+// 去掉首空白;s/\s+$// 去掉尾空白;s/^\s+|\s+$// 去掉首尾空白;大小写转化的例子:s/(fred|barney)/\U$1/gi 匹配所有的忽略大小写,替换成大写;s/(fred|barney)/\L$1/gi 匹配所有的忽略大小写,替换成小写;s/(\w+) (\w+)/\U$2\E$1/i $2变成大写 $1还是保持小写,\E结束转换;CPAN 是 Comprehensive Perl Archive Network 的缩写,中译为 Perl 综合典藏网。它包含了极多用 Perl 写成的软件和模块。CPAN相关软件的安装方法最近几天安装SPAMASSASSIN,牵涉到许多CPAN的安装,以前都是缺少什么,就去CPAN网站寻找相应的模块,自己编译安装,后来发现其实CPAN自己的shell命令就可以很方便的安装相应模块,真是方便当然前提你必须安装perl-CPAN,在我的redhat9.0上的版本是perl-CPAN-1.61-88,大家没装的话,直接用光盘的rpm包安装即可。安装后运行[root@www CPAN]# perl -MCPAN -e shellcpan shell -- CPAN exploration and modules installation (v1.61) ReadLine support available (try 'install Bundle::CPAN')cpan>进入cpan的shell,好了,我为了安装spamassassin,需要安装以下几个install Digest::SHA1 install HTML::Parser install Storable install DB_File install Net::DNS install Net::SMTP install Mail::SPF::Query install IP::Country::Fast install IO::Socket::SSL install Time::HiRes install DBI是不是很方便呀,不用再单独下载编译安装了, 类型 字符 例子 用于哪种名字 标量 $ $cents 一个独立的数值(数字或字串) 数组 @ @large 一列数值,用编号做键字 散列 % %interest 一组数值,用字串做键字 子过程 & &how 一段可以调用的 Perl 代码 类型团 * *struck 所有叫 struck 的东西 手册页 内容 perl 有些什么 perl 手册页 perldata 数据类型 perlsyn 语法 perlop 操作符和优先级 perlre 正则表达式 perlvar 预定义变量 perlsub 子过程 prelfunc 内建函数 perlmod 如何令 Perl 模块工作 perlref 参考手册 perlobj 对象 perlipc 进程间通讯 perlrun 如何运行 Perl 命令,以及命令行开关 perldebug 调试 perldiag 诊断信息 % perlop comma% perlfunc split% perlvar ARGV% perldiag 'assigned to typeglob' % perlfaq roundperltoc 命令(自己也是一个手册页)搜索所有手册页收集的目录 % perltoc typeglob perl5005delta: Undefined value assigned to typeglob perldata: Typeglobs and Filehandles perldiag: Undefined value assigned to typeglob 或者搜索全部 Perl 在线文档,包括所有头,描述,和例子,对于任何字串的实例,使用 perlhelp 命令: % perlhelp CORE::GLOBAL参阅 perldoc 手册页获取细节。 手册页 内容 perlfaq1 关于 Perl 的通用信息 perlfaq2 获取和学习 Perl perlfaq3 编程工具 perlfaq4 数据操作 perlfaq5 文件和格式 perlfaq6 正则表达式 perlfaq7 通用 Perl 语言信息 perlfaq8 系统交互 perlfaq9 网络 手册页 内容 perlamiga Amiga 移植 perlcygwin Cygwin 移植 perldos MS-DOS 移植 perlhpux HP-UX 移植 perlmachten Power MachTen? 移植 perlos2 OS/2 移植 perlos390 OS/390 移植 perlvms DEC VMS 移植 perlwin32 MS-Windows 移植 比较 数字 字串 返回值 等于 == eq 如果 $a 等于 $b 返回真 不等于 = ne 如果 $a 不等于 $b 返回真 小于 < lt 如果 $a 小于 $b 返回真 大于 > gt 如果 $a 大于 $b 返回真 小于或等于 <= le 如果 $a 不大于 $b 返回真 比较 <=> cmp 相等时为 0,如果 $a 大为 1 如果 $b 大为 -1 例子 名字 结果 -e $a 存在 如果在 $a 中命名的文件存在则为真 -r $a 可读 如果在 $a 中命名的文件可读则为真 -w $a 可写 如果在 $a 中命名的文件可写则为真 -d $a 目录 如果在 $a 中命名的文件是目录则为真 -f $a 文件 如果在 $a 中命名的文件是普通文件则为真 -T $a 文本文件 如果在 $a 中命名的文件是文本文件则为真 名字 ASCII 定义 代码 空白 [\t\n\r\f] \s 词 [a-zA-Z_0-9] \w 数字 [0-9] \d还有一件你必须知道的事情,缺省时量词作用在它前面的单个字符上,因此 /bam{2}/ 将匹配 “bamm”而不是“bambam”。如果你要对多于一个字符使用量词,你需要使用圆括弧,因此为了匹配“bambam”需要使用 /(bam){2}/。 构造 含义 $days 简单标量值 $days $days[28] 数组 @days 的第二十九个元素 $days{'Feb'} 散列 %days 的“Feb”值 构造 含义 ${days} 和 $days 一样,不过在字母数字前面不易混淆 $Dog::days 在 Dog 包里面的不同的 $days 变量 $#days 数组 @days 的最后一个索引 $days->[28] $days一个引用指向的数组的第二十九个元素 $days[0][2] 多维数组 $days{200}{'Feb'} 多维散列 $days{2000,'Feb'} 多维散列枚举 构造 含义 @days 包含($days[0],$days[1],...$days[n])的数组 @days[3,4,5] 包含($days[3],$days[4],$days[5])数组片段的数组 @days[3..5] 包含($days[3],$days[4],$days[5])数组片段的数组 @days{'Jan','Feb'} 包含($days{'Jan'},$days{'Feb'})片段的散列 构造 含义 %days (Jan=>31,Feb=>$leap?29:28,...) 代码 含义 \n 换行符(常作LF) \r 回车(常作CR) \t 水平制表符 \f 进纸 \b 退格 \a 警报(响铃) \e ESC字符 \033 八进制的ESC \x7f 十六进制DEL \cC Control-C \x{263a} Unicode(笑脸) \N{NAME} 命名字符 代码 含义 \u 强迫下一个字符为大写(Unicode里的“标题”) \l 强制下一个字符小写 \U 强制后面所有字符大写 \L 强制后面所有字符小写 \Q 所有后面的非字母数字字符加反斜杠 \E 结束\U,\L,或\Q。 常用 通用 含义 替换 ' ' q// 文本字串 否 " " qq// 文本字串 是 ` ` qx// 执行命令 是 () qw// 单词数组 否 // m// 模式匹配 是 s/// s/// 模式替换 是 y/// tr/// 字符转换 否 " " qr// 正则表达式 是 #! /usr/bin/perl @lines= `perldoc –u –f atan2`; # 反引号`通常在美式键盘数字1 的左边。不要和单引号‘混淆了 foreach(@lines){ s/\w<([^>]+)/\U$1/g; print; } chomp() 这个函数是去到\n 的,如果两个\n只去掉一个。pop 是在数组的结尾,弹出 push 是在数组的结尾,压入。shift 是在数组的开头,弹出 unshift 是在数组的开头,压入reverse 逆转 子程序返回值为最后一个被计算的表达式。 在if 代码块内部,其语句没有分号。Perl 允许省略括号中最后一条语句的分号,在实际代码中,通常仅当此代码块仅包含一条语句时才省略此分号本书重点 my ($num) = @_; #列表context,同($sum) = @_;此为特殊列表,表内只有一个变量 my $num = @_; #标量context ,同$num = @_; 例如 @_=qw(a b c d e f g) 还有补充就是 ($num)里得到的是值为a $num里得到的是@_的个数为7记住,如果没有使用括号,my 仅定义一个变量◆ my $first,$second 没有定义$second my ($first,$second) 两个都定义了. $#name 是name这个数组的最后一个索引 #@name 是对数组name进行索引行输入操作在到达文件的结尾时将返回undef ,这对于从循环退出时非常方便的 while (defined($line=)){ print "I saw $line"; } 可简写 while (){ print "I saw $_"; }在进行深入讨论前,我们要澄清一些事:这种简写只在特定的情况下有效,默认的情况下不会将一行读入变量$_。仅当while 循环的条件判断部分只包含行输入操作才有效◆。如果在条件判断部分还有别的内容,则上述简写无效。这是Unix 中很少人知道的一个事实:如许多标准的工具,如cat ,sed ,也使用这种约定,连接号(-)代表标准输入流。如果在第二次使用<>之前重新初始化@ARGV ,则能得到正确的结果 @ARGV 是一个数组,但是好像是perl 内定的一个数组.

相关文档
最新文档