加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

第一章 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"后面没有跟着非单词字符
























(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读