ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:21.85KB ,
资源ID:8050898      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8050898.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(perl学习笔记.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

perl学习笔记.docx

1、perl学习笔记Perl快速入门1、标量标量是一种变量,只能保存单个值、单个字符串或单个数字。标量名必须以美元符号“$”开头。标量上下文则负责表明当前正在使用单个值的情况EXAMPLE$first_name = Melanie;$last_name = Quigley;$salary = 125000.00;print $first_name, $last_name, $salary;2、数组数组是一组有序排列的标量,如字符串和/ 或数字。数组中的各个元素由从0 开始的整数来索引。数组变量名以“”符号开头names = ( Jessica, Michelle, Linda );print $n

2、ames; #Prints the array with elements separated by a spaceprint $names0 and $names2; #Prints Jessica and Lindaprint $names-1n; # Prints Linda$names3=Nicole; # Assign a new value as the 4th element下面是一些常用的内建函数:pop 移除最后一个元素push 把新元素添加到数组末尾shift 移除第一个元素unshift 把新元素添加到数组开头splice 在数组指定位置添加或移除数组元素sort 对数组

3、元素进行排序3、散列关联数组(associative array),又称为散列(hash),是一组未经排序的键/ 值对(key-valuepair),并通过字符串进行索引。散列变量名以“%”号开头(请注意,若位于单引号或双引号中的话,符号将不会解析)EXAMPLE%employee = (Name = Jessica Savage,Phone = (925) 555-1274,Position = CEO);Print $employeeName; # Print a value$employeeSSN=999-333-2345; # Assign a key/value4、预定义变量Perl

4、 提供了大量的预定义变量。下面列举了常用的一些预定义变量:$_ 在执行输入和模式搜索操作时使用的默认空格变量$. 文件中最后处理的当前行号$ 由最近一个eval() 运算符提供的Perl 语法报错信息$! 获取当前错误信息值,常用于die 命令$0 含有正在执行的程序名$ 正在执行本脚本的Perl 进程号$PERL_VERSION / $V Perl 解释器的版本、子版本和修订版本信息ARGV 含有命令行参数ARGV 一个特殊的文件句柄,用于遍历 ARGV 中出现的所有文件名INC 库文件的搜索路径_ 在子例程中,_ 变量含有传给该子例程的变量内容%ENV 关联数组型变量%ENV 含有当前环境

5、信息%SIG 关联数组型变量%SIG 含有指向信号内容的句柄5、常量固定不变的值,一旦设置就不能再更改。典型的常量包括PI,或一英里长度的英尺数。这些值都是从不变化的。用户可借助constant 保留字来定义常量,这里给出示例如下:EXAMPLEuse constant BUFFER_SIZE = 4096;use constant PI = 4 * atan2 1, 1;use constant DEBUGGING = 0;use contstant ISBN = 0-13-028251-0;PI=6; # Cannot modify PI; produces an error.6、运算符P

6、erl 提供了多种运算符,但是其主要内容与C/C+、Java 或PHP 运算符类似。运算符包括如下几种赋值运算符 =、+=、-= 、*=、%= 、= 、&=、|= 、.=算术相等 =、!=、字符串相等 eq、ne、cmp算术大小关系 、=、=字符串大小关系 gt、ge、lt、le范围运算符 5 . 10 # 范围是5 至10 之间,逐个递增逻辑运算符 &、and、|、or、XOR、xor、!自动递增/递减 +、-文件运算符 -r、-w、-x、-o、-e、-z、-s、-f、-d、-l,等等位运算符 、&、|、字符串连接 .字符串复制 x代数运算符 *、/、-、+、%模式匹配 =、!EXAMPLE

7、print nArithmetic Operatorsn;print (3+2) * (5-3)/2);print nString Operatorsn; # Concatenationprint tTommy . . Savage;print nComparison Operatorsn;print 5=3 , n;print 47=23 , n;print nLogical Operatorsn;$a $b & $b =1 & $day_of_week =4 ) print Business hours are from 9 am to 9 pmn;elsif ( $day_of_week

8、 = 5) print Business hours are from 9 am to 6 pmn;else print We are closed on weekendsn;10、if/else 简化模式和C/C+ 类似,Perl 也为if/else 语法结构提供了相应的简化模式,该模式拥有两个运算符和三个操作数(因此又称为三元运算符)。如果条件值为true,则执行紧跟在问号后面的语句;如果是false,则执行冒号后面的语句。其格式为:( 条件) ? 条件为true 时执行的语句 : 条件为false 时执行的语句EXAMPLE$coin_toss = int (rand(2 ) + 1;

9、# Generate a random number # between 1 and 2print ($coin_toss = 1 ? You tossed HEADn : You tossed TAILn );11、while 循环、do-while循环循环结构能够指定一段重复执行多次的代码。Perl 支持多种不同类型的循环:while 循环、do-while循环、for 循环以及foreach 循环。while/until 循环 while 循环:while 后面跟随一个以小括号包围起来的表达式,以及一段执行语句。当表达式取值为true 时,便继续执行循环内容。其语法结构为:while(条

10、件表达式)代码段AEXAMPLE$count=0; while ($count 10 ) print $count;$count+; 12、until 循环:until 后面跟随一个以小括号包围起来的表达式,以及一段执行语句。当表达式取值为false 时,继续执行循环内容。其语法结构为:until(条件表达式) 代码段AEXAMPLE$count=0; until ($count = 10 ) print $count;$count+; 13、do-while 循环 do-while 循环类似于while 循环,所不同的是它是在循环体末尾检查循环表达式的,而不是在开头检查。这就保证了循环体至少

11、能执行一次。其代码结构为:do代码段Awhile(表达式);EXAMPLE$count=0; do print $count ;$count+; while ($count 10 );14、for 循环 for 循环需要判断三个条件表达式的取值,各表达式之间以分号隔开。第一个表达式负责初始化变量,在整个循环过程中只调用一次。第二个表达式负责判断条件值是否为true,如果是true 的话便执行循环体;否则就退出循环。当循环体执行完毕后,控制权便转移到第三个表达式,由它负责更新待检测变量的值。然后,再由第二个表达式进行下一次判断,如此反复。其代码结构如下所示:for( 初始化鍬量;条件表达式;自加

12、/ 自减) 代嗎段EXAMPLEfor( $count = 0; $count 10; $count = $count + 1 ) print $countn;15、foreach 循环 foreach 循环仅用于逐个遍历列表(list)内容。foreach$ 列表项( 列表)print$ 列表项,n;EXAMPLEdessert = ( ice cream, cake, pudding, fruit);foreach $choice (dessert)print Dessert choice is: $choicen;16、循环控制last/next last 语句可用于从循环体中跳出一个循

13、环。next 语句可用于跳过当前这次循环的剩余内容,直接从头开始下一轮循环。EXAMPLE$n=0;while( $n 10 )print $n;if ($n = 3)last; $n+; print Out of the loop;EXAMPLEfor($n=0; $n10; $n+)if ($n = 3)next; # Start at top of loop; # skip remaining statements in blockecho $n;print Out of the loop;17、函数(function)是一组能完成某项任务的代码体,并供程序其他部分调用。用户可以通过参数

14、将数据传送给这个函数。函数可以有返回值,也可以不返回任何值。任何合法的Perl 代码均可出现在函数体的定义中。定义于函数外面的变量在函数体内也同样可用。而my 函数则能把指定的变量局部化。sub function_name函数体EXAMPLEsub greetings() print Welcome to Perl!; # Function definition&greetings; # Function callgreetings(); # Function callEXAMPLE$my_year = 2000;if ( is_leap_year( $my_year ) ) # Call f

15、unction with an argumentprint $my_year is a leap yearn;else print $my_year is not a leap year;sub is_leap_year # Function definitionmy $year = shift(_); # Shift off the year from # the parameter list, _return ($year % 4 = 0) & ($year % 100 != 0) |($year % 400 = 0) ? 1 : 0; 18、文件处理Perl 提供了open 函数用于打开

16、文件,也提供了pipe,用于读写、追加文件内容。其中,open 函数的参数包括一个用户自定义的文件句柄(一般表现为一串大写字符),以及一个含有文件路径和读/写/追加标志的字符串EXAMPLETo open a file for reading:open(FH, filename); # Opens filename for reading. # The filename); # Opens filename for writing. # Creates or truncates file.To open a file for appending:open(FH, filename); # Op

17、ens filename for appending.# Creates or appends to file.To open a file for reading and writing:open(FH, +filename); # Opens filename for write, then read.To close a file:close(FH);To read from a file:while() print; # Read one line at a time from file.lines = ; # Slurp all lines into an array.print l

18、inesn;To write to a file:open(FH, file) or die Cant open file: $!n;print FH This line is written to the file just opened.n;print FH And this line is also written to the file just opened.n;EXAMPLETo Test File Attributesprint File is readable, writeable, and executablen if -r $file and-w _ and -x _; #

19、 Is it readble, writeable, and executable?print File was last modified ,-M $file, days ago.n; # When was it last modified?print File is a directory.n if -d $file; # Is it a directory?19、管道管道用于把系统命令输出内容作为输入流传送给Perl,或者将Perl 的输出内容转发给系统命令以作为其输入。管道又称作过滤器(filter)。用户必须通过open 系统调用来使用管道。该系统调用接受两个参数:一个用户自定义的句

20、柄和一个操作系统命令,并需在操作系统命令的前面或者后面加上一个“|”符号。如果“|”符号出现在命令之前,则表示该命令将把Perl 的输出作为输入内容;否则表示Perl 将读取该命令的输出内容。也就是说,如果命令后面带有“|”,就表示Perl 将从管道中读取输入内容;否则说明Perl 将把输出内容写入到管道中去。EXAMPLEInput filteropen(F, ls |) or die; # Open a pipe to read fromwhile() print ; # Prints list of UNIX filesOutput fileropen(SORT, | sort ) or

21、 die; # Open pipe to write toprint SORT dogsncatsnbirdsn # Sorts birds, cats, dogs on separate lines.20、正则表达式所谓正则表达式,是由斜杠圈起的一组字符集合。它们可用于在文本中匹配指定模式,并进行相应替换操作。一直以来,Perl 都因为其优秀的模式匹配机制而闻名于世。 元字符表达含义 匹配行首$ 匹配行尾a.c 匹配一个a,后面任意单个字符,再后面是一个c 的情况abc 匹配a 或者b 或者c 的情况abc 匹配字符既不是a 又不是b 也不是c 的情况0-9 匹配位于0 到9 之间的单个数字

22、ab*c 匹配一个a 后面跟0 到多个b,最后是一个c 的情况ab+c 匹配一个a 后面跟1 到多个b,最后是一个c 的情况ab?c 匹配一个a 后面跟0 到1 个b,最后是一个c 的情况(ab)+c 匹配1 到多个ab 后面跟着1 个c 的情况(ab)(c) 捕获ab 并将其值赋予变量$1,同时捕获c 值并赋予$2EXAMPLE$_ = looking for a needle in a haystack;print if /needle/;If $_contains needle, the string is printed.$_ = looking for a needle in a h

23、aystack; # Using regular expression metacharactersprint if /Nn.dle/;# characters and dle.$str = I am feeling blue, blue, blue.$str = s/blue/upbeat/; # Substitute first occurrence of blue with upbeatprint $str;I am feeling upbeat, blue, blue.$str=I am feeling BLue, BLUE.;$str = s/blue/upbeat/ig; # Ig

24、nore case, global substitutionprint $str;I am feeling upbeat, upbeat.$str = Peace and War;$str = s/(Peace) and (War)/$2, $1/i; # $1 gets Peace, $2 gets Warprint $str;War and Peace.$str = He gave me 5 dollars.ns/5/6*7/e; # Rather than string substitution, evaluate replacement sideprint $str;He gave me 42 dollars.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1