第一章 Perl 概述

前端之家收集整理的这篇文章主要介绍了第一章 Perl 概述前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<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 @home\n";
($a,$b,$c,$d)=@home;
print "\$a is $a\n";
print "\$b is $b\n";
print "\$c is $c\n";
print "\$d is $d\n";

[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 $a\n";
print "\$b is $b\n";
print "\$c is $c\n";
[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 $line\n"}
}

[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次或多次


?表示零次或一次

空白     [\t\n\r\f]     \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 @ARGV\n";
    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)之间的零宽度的地方。


(字符串的开始和结尾也被认为是非单词字符)  


例如: /\bFred\b/ 将会匹配"The Great Fred"和"Fred the Great"中的Fred,但不能匹配"Frederick the Great",因为在"Fredrick"中的"d"后面没有跟着非单词字符
























猜你在找的Perl相关文章