PERL快速入门

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


遍历
foreach $person (keys %ages){print "$person $ages{$person}\n";} foreach $person (sort keys %ages){print "$person $ages{$person}\n";} foreach (sort{$Word{$b} <=> $Word{$a} } keys %Word){ print Out "$_ $Word{$_}\n"; } %records = (“one", 61, “two", 755, “three", 511); while (($holder, $record) = each(%records)) { print "$holder $record \n";}

单引号内就是字符本身,单引号支持多行赋值
print „\tThis text contains the number\n’;
针对简单变量的操作符(3)

算术操作符

+, -, *, **, %, <, =, >. !=. >=, <=,<=> lt, gt, le,ge, eq, ne,cmp chop,chomp,substr,length .(连接符) &&, ||, !, xor =, +=.-=,*=,/=,**=,%=, ++,--

数组的赋值百度文库

数组(2)


数组包含元素的个数 $Size= @array; 访问数组元素与遍历 $array[no]; $array=(1,2,3,4,5); $Element=$array[0]; foreach $Element(@array){print “$Element”;} for($i=0; $i <@array;$i++){print “$array[$i]”;} 其他赋值操作 ($First)= @array; ($First,$Second)= @array; ($First,$Second,@SubAraay)= @array; @SubAraay = @array[0,1]; @Array[0,1] = ("string", 46);
使用引用构造复杂数据结构(4)
• 一个混合数据结构
$Val=12; $String="data"; @array=("a","b","c"); %hash=("a0",11,"b0",12,"c0",13); @Struct=(\$Val,\$String,\@array,\%hash); print ${$Struct[0]}."\n"; print ${$Struct[1]}."\n"; print $Struct[2]->[2]."\n"; print $Struct[3]->{"a0"}."\n"; $Pointer=$Struct[2]; push(@$Pointer,"d"); print "@$Pointer"."\n"; print $Struct[2]->[3]; $Pointer=$Struct[3]; ${$Pointer}{"d0"}="14"; print sort keys (%{$Struct[3]}),"\n"; print sort values (%{$Struct[3]}),"\n";
Perl变量类型


简单变量 可以是数值,字符串,不作严格的区分。名字前面加上一个“$” 。 例如: $Data= 123; $string=“123”; 数组 名字前面加上一个“@”,表示数组变量。 @array=(1,2,3,4,5); @array=(“a”,”b”,”c”); @array=(1,”b”,”c”); 哈希表(hash) --名字前面加上一个“@”,表示数组变量。 %hash=(“hello”=>“哈罗”,“nihao”=>“你好”,“data”=>1); %hash=(“hello”,“哈罗”,“nihao”,“你好”,“data”,1); 文件句柄 open(FILEHANDLE,"test.htm"); close(FILEHANDLE); 引用 使用“\”来生成引用。 $Pointer=\$string;$Pointer=\@array; $Pointer=\@hash; 常用于函数调用参数传递,构造复杂数据结构

访问哈希表 $ages{"Michael Caine"}; $ages{"Dirty Den"};
# Returns 39 # Returns 34
哈希(2)

增加元素

$hash{$key}=$value;
delete ($Hash{$Key});

删除元素


查找 if ( defined $hash{$element} ){print “$hash{$element}”;}
$hash{"b"}=\%Hash2;
print $hash{"a"}->{"b"},"\n";
使用引用构造复杂数据结构(3)
• 值为数组的哈希
@array1=("a","b","c"); @array2=("d","e","f"); @array3=("s","t","z"); %hash=("a",\@array1,"b",\@array2,"c",\@array3); $Pointer=$hash{"b"}; print "@$Pointer"."\n"; print $hash{"c"}->[2]; print ${$hash{"b"}}[0]."\n"; foreach (sort keys %hash){ $Pointer=$hash{$_}; foreach ( @$Pointer ){ print "$_ "; } print "\n"; }

浮点数


字符串
简单变量类型(2)

字符串
$Str=“this is a string”; $Str=„this is a string‟; 转义字符

双引号内可以包含转义字符和其他变量
$number=11; $text = "This text contains the number $number."; $text = “\tThis text contains the number\n”;
#在结尾添加一个元素 #在结尾删除一个元素 #在头添加一个元素 #在头删除一个元素 #只有在赋值时有效 #只有在赋值时有效 #字符串拆解 #字符串连接 #对每个元素去掉 #对每个元素去掉最
哈希(1)

哈希变量

以%开头表示哈希变量 集合((key1,value1), (key2,value2),… (keym,valuem))

整数比较操作符


字符串比较操作符


字符串操作函数


逻辑操作符


赋值操作符


自增自减操作符


条件操作符
条件?值1:值2,当条件为真时取值1,为假时取值2 $Num=$One ne $Two?1:2;

数组(1)

数组变量

表示以@开头 数组的的元素可以是数值、字符串或两者的混合 @array = (2, 3, 4); @array = („str1‟, “\tstr2”, “str3”); $str4=“str4”; @ array = („str1‟, “\tstr2”, $str4); @array = (1..3,4,5); @day_of_month = ("01".."31") @array = (e..f); @array= (a,b, @array,g); @array = ();

使用引用构造复杂数据结构(1)
• 二维数组
@array1=("a","b","c"); @array2=("d","e","f"); @array3=("s","t","z"); @array=(\@array1,\@array2,\@array2); $Pointer=$array[0]; print "@$Pointer"."\n"; print $$Pointer[2]; print ${$array[0]}[2]; print "$array[0]->[2]"."\n"; @array1=(1,2);@array2=("a","b"); push(@array,\@array1);push(@array,\@array2); print ${$array[0]}[1],"\n";print ${$array[1]}[1],"\n";
使用引用构造复杂数据结构(2)
• 值为哈希的哈希
%hash1=("a0",11,"b0",12,"c0",13); %hash2=("a1",21,"b1",22,"c1",23); %hash3=("a2",31,"b2",32,"c2",33); %hash=("a",\%hash1,"b",\%hash2,"c",\%hash3); $Pointer=$hash{"a"}; @key=sort keys(%$Pointer); print @key; print ${$hash{"a"}}{"a0"}; print $hash{"b"}->{"b1"}; %Hash1=("a",1,"b",2); %Hash2=("d",1,"f",2); $hash{"a"}=\%Hash1;

Key 为数值或者字符串 Value 为数值、者字符串或者引用

哈希的赋值

%Hash=(); %Ages = ("Michael Caine", 39, "Dirty Den", 34, "Angie", 27); @fruit = ("apples",17,"bananas",9,"oranges","none"); %fruitHash = @fruit; ($var1, $var2, %myarray) = @list @Key=keys(%hash); @value=values(%hash);



简单变量类型(1)

以$开始 整型

十进制 $x = 12345; 8进制 $x = 020;(16) 16进制 $x = 0x20; (32) 11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03 $value = 9.01e+21 + 0.01 - 9.01e+21;
一个程序实例
简洁强大的Perl
内容介绍



Perl语言 Perl变量类型 模式匹配 Perl控制结构 Perl在自然语言处理中应用 查词典、词典合并、词频统计、汉语分词 词性标注、 简繁转换 网络机器人、调用Google API Perl其他典型应用 建立CGI网络应用 与数据库的接口 在C语言中,使用Perl

读文件
print FH “This data is $Value\n”;
引用

引用就是指向其他变量的标识。 在被引用变量前加\
指向简单变量的引用 $Str="data"; $Point=\$Str; 指向简单变量的引用 @array=("a","b","c"); $Point=\@array; 指向简单变量的引用 %hash=("a",1,"b",2,"c",3); $Point=\%hash;
Perl语言
Perl是什么?



Perl是解释性的脚本语言 Larry Wall于1987年,为进行文本处理和系统管理编写。 综合了c,sh, awk和sed的优点。 开放源代码,免费下载安装程序。 Perl不是GUI程序。 Perl是用C程序编写。 Perl的优点 出色卓越的处理文本能力。 是跨平台的编程语言,window,linux… 自主内存管理,没有内存泄漏问题。 强大便捷的模块化功能。 下载安装程序 ActivePerl for Windows http://www.perl.com
文件句柄

以读方式打开一个文件
open(FH, "< $filename");

以写方式打开一个文件
open(FH, "> $filename");

以添加方式打开一个文件
open(FH, ">> $filename");

关闭文件
close( FH )

读文件
While( < FH > ){ print “$_\n”; } @lines=< FH >;
数组(3)

有关数组的操作函数 push(@Array,$Str) ; $Str =pop(@Array) ; unshift (@Array, $Str) ; $Str = shift (@Array) ; @sorted=sort(@Array); @ reversed=reverse(@Array); @array=split(“; ”,$String); $String =join(“;”, @array); chop(@array); 最后一个字符 chomp(@array); 后一个换行符
相关文档
最新文档