第一章 Perl 概述
发布时间:2020-12-15 23:40:44 所属栏目:大数据 来源:网络整理
导读:pre name="code" class="sql"$fido = new Camel "Amelia";if (not $fido){die "dead camel";}$fido-saddle();在这里,我们首选创建一个指向Camel对象的引用,并将它赋给变量$fido,在第二行中,我们将$fido当成一个布尔值来判断它是否为真,如果它不为真,程序将
<pre name="code" class="sql">$fido = new Camel "Amelia"; if (not $fido){die "dead camel";} $fido->saddle(); 在这里,我们首选创建一个指向Camel对象的引用,并将它赋给变量$fido, 在第二行中,我们将$fido当成一个布尔值来判断它是否为真,如果它不为真,程序 将抛出一个异常。在这个例子中,这意味着new Camel 构造器创建Camel对象失败。 最后一行,我们将$fido作为一个引用,并调用Camel对象的saddle()方法。 @home=("counch","chair","table","stove"); [root@master Webqq]# cat k1.pl @home=("counch","stove",1,2,3,4,5); print "@home is @homen"; ($a,$b,$c,$d)=@home; print "$a is $an"; print "$b is $bn"; print "$c is $cn"; print "$d is $dn"; [root@master Webqq]# perl k1.pl @home is counch chair table stove 1 2 3 4 5 $a is counch $b is table $c is stove $d is 1 () 小括号 数组 {} 大括号 hash 数据元素读取: [root@master Webqq]# cat k5.pl @a=qw/4 7 1 3/; print "$a[1] is $a[1]n"; [root@master Webqq]# perl k5.pl $a[1] is 7 hash 元素读取: [root@master Webqq]# cat k6.pl %hash=(a=>1,b=>5,c=>100); print $hash{b}; [root@master Webqq]# perl k6.pl 5[root@master Webqq]# spili 操作符: [root@master ~]# cat p1.pl ($a,$c)=split(/,/,"vi,edit,plus"); print "$a is $an"; print "$b is $bn"; print "$c is $cn"; [root@master ~]# perl p1.pl $a is vi $b is edit $c is plus =~ 模式绑定操作符 读取控制台输入: [root@master ~]# cat p2.pl while ($line =<>){ if ($line =~/http/){print "$line is $linen"} } [root@master ~]# perl p3.pl http ftp [root@master ~]# cat p3.pl open (FILE,"<","a.txt") or die $!; while (<FILE>){ print if /http/i; print if /ftp/i; print if /ssh/i; } +是一个特殊字符,表位匹配+前面的内容一次或多次 . 点号 匹配所有的字符,除换行符外 * 表示0次或多次 ?表示零次或一次 空白 [tnrf] s 调字符 [a-zA-Z_0-9] w 数字 [0-9] d 最小匹配 非贪婪匹配 在新版本的Perl中,可以强制进行非贪婪匹配。 在量词后面加上一个问号来表示最小匹配。 单词边界: 特殊符号b 匹配单词边界,就是位于单词字符(w) 和非单词字符(W)之间的零宽度的地方(字符串的开始和结尾被认为是非单词字符).例如: 反向引用: 我们曾经提到过用小括号来为量词包围一些字符,同样,也可以使用小括号来记住匹配到的东西。正则表达式中的一对小括号使得这部分匹配到的定西将被记住,以供以后使用。 [root@master Webqq]# cat t9.pl while (@ARGV){ print "@ARGV is @ARGVn"; shift @ARGV; }; [root@master Webqq]# perl t9.pl 1 2 3 4 5 @ARGV is 1 2 3 4 5 @ARGV is 2 3 4 5 @ARGV is 3 4 5 @ARGV is 4 5 @ARGV is 5 b 匹配单词边界,就是位于单词字符(w)和非单词字符(W)之间的零宽度的地方。 (字符串的开始和结尾也被认为是非单词字符) 例如: /bFredb/ 将会匹配"The Great Fred"和"Fred the Great"中的Fred,但不能匹配"Frederick the Great",因为在"Fredrick"中的"d"后面没有跟着非单词字符 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |