Perl语言学习笔记 day 1
1、Perl Practical Extraction and Report Language:实用摘录与报表语言 2、多行注释 (1) =需要顶格写 =?description statement; =cut (2)末尾的description需要顶格写 <<description; 3、数字: 所有数字在Perl内都以双精度浮点数格式存储; 5**3:5*5*5; 4、字符串: 最短的字符串为空字符串,最长的没有限制。(Perl会专门存储字符串的长度) 单引号字符串:只有单引号和反斜杠可以转义,如“n”表示反斜杠和n两个字符,不表示换行符 双引号字符串:支持变量内插、支持各种反斜杠转义,如“n”表示换行符 反斜杠转义: l:将下个字符转为小写;L:将E为止的字符全部转为小写; u:将下个字符转为大写;U:将E为止的字符全部转为大写; Q:将E为止的非单词字符加上反斜杠; E:结束L、U、Q 用英文句号“.”连接字符串,如“hello”."world" = "helloworld" 字符串重复操作符:x,右边的数字(取整数)表示重复次数,例:"hello" x 3 = "hellohellohello",5x4 = “5555” 变量内插: $word = "hello"; $words = "$word world!" = "hello world!"; 如果$word后边紧跟字符,可以采用:$words = "${word}world!";,或者$words = "$word"."world!"; 5、Perl会根据需要自动在字符串和数字之间进行转换 数学计算中字符串的非数字部分将会略过,如“12read32”*3 = 36; 不含数字的字符串转为0; 6、警告信息 (1)运行时使用:perl -w my_program (2)程序中声明:#!/usr/bin/perl -w 或者#!perl -w (3)#!/usr/bin/perl use warnings (4)更加详细,会导致程序启动变慢: #!/usr/bin/perl use diagnostics 7、变量 以$开头,区分大小写。变量一般小写。 8、比较操作符 ==:eq、!=:ne、<:lt、>:gt、<=:le、>=:ge; 9、布尔值 数字:0为假,其他都为真 字符串:空字符串为假,其他都为真 其他类型:转为字符串或者数字再判断 字符串'0'和数字0是一个值,因此为假 10、获取用户输入:<STDIN> chomp:去除字符串末尾的最后一个换行符,返回移除的字符数(0/1),例:chomp($text = <STDIN>):读取输入,不含换行符; 可以一次去除列表中元素的换行符,例:chomp(@lines) 命令行输入的数据带有换行符,默认都用chmop处理一下。 11、undef:数字表示0,字符串表示空字符串。 defined($n):判断变量n是否定义 $n = undef:创建一个未定义的变量; 12、数组 数组中最后一个元素的下标:$#arry和-1 @:引用整个数组,例:@Rocks = qw/ bedrock slate lava/ = {"bedrock","slate","lava"} 数组名会被展开为元素列表,逐个赋值给新数组,例:@quarry = {@Rocks,"new",undef} = {"bedrock","lava",undef} pop和push用于操作数组最后一个元素:$num = pop(@arry) = pop @arry; ?也可pop @arry,数组为空的话pop返回undef,可以将一个数组push到另外一个数组,push(@arry,1); shift和unshift用于操作数组第一个元素,$num = shift(@arry),unshift @arry,@others 数组内容可以内插到双引号字符串中,以空格隔开,例:print "quartz @Rocks lime" ? > "quartz bedrock slate lava",此处会导致电子邮件地址被误认为数组,可以用转义或者用单引号。 某个变量后跟着"[",需要将"["隔开,避免被当作数组,例:print "this is $(fread)[3]"、print "this is $fread[3]"; 13、范围操作符:... ? ?例:(1...5) = (1,2,3,4,5) 14、qw 简写:qw{apple good hello} = {"apple","good","hello"}? 可以使用任何标点符号作为定界符:qw{apple good hello} = qw(apple good hello) =?qw!apple good hello! =?{"apple","hello"}? 15、列表赋值 ($first,$last) = ("first name","last"); 左边变量个数小于列表值个数,多余的值被忽略,左边变量个数大于列表值个数,未赋值的变量是undef 16、foreach可以遍历列表中的值,遍历后控制变量仍然是循环之前的值,例:foreach $rock (@Rocks)();循环之后$rock还是本来的值 17、$_ Perl的默认变量,在未指定变量和数值时,使用"$_"的值。例:foreach没有指定遍历值时,用“$_”替代 18、reverse 按照相反的次序返回列表元素 19、sort 读取列表的值,根据内部的编码排序,一般为ASC|| 编码。 不能将数字当作字符串排序,否则101会在90前边,1开头的会排在9前边 20、上下文 列表上下文中,产生元素的列表 标量上下文中,产生数组元素的个数 强制指定标量上下文:scalar 21、清空数组:@arry = {}; 错误做法:@arry = undef;得到一个列表,仅有一个未定义的元素。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |