赞
踩
perl简述
1、Perl 一般被称为“实用报表提取语言”(Practical Extraction and Report Language,脚本语言。Perl具有高级语言(如C)的强大能力和灵活性。Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
2、你的程序的第一行必须为#!/usr/bin/perl(perl所在位置)。Perl通常位于/usr/local/bin/perl或/usr/bin/perl中。
3、 注释的方法为在语句的开头用字符#。
#!/usr/bin/perl
use strict;
use Encode;
#for perlApp.
use Encode::CN;
简单变量
1、变量(整型、浮点、字符串)定义,以$号开头,如:
my $num1 =1; #局部
our $num2 =100; #全局
print "num1:$num1\n"; #打印
1)惯用C的程序员要注意,在PERL中,字符串的末尾并不含有隐含的NULL字符,NULL字符可以出现在串的任何位置。
2)引号内的字符串中支持简单变量替换与反斜杠\转义字符功能。因此,perl字符串不是一个像C语言中的简单存储单元,而是一个简单表达式。
2、数组定义,以@开头,如:our @array = (1,2,3);
数组元素调用 $array[index],其中index表示数组下标,如上例,$array[0]的值是1
3、散列(哈希数组)
1)散列(哈希数组)定义,以%开头,如:%hash=("a",1,"b",2);
散列调用 $hash{keys},其中keys表示键值,多用字符串表示。
注意:hash的key必须具有唯一性,但value可以不唯一,为此hash的key经常被用来做唯一化处理。
如上例中keys为"a", "b", vaules是keys对应的值,为1,2。$hash{"b"}的值是2。
2) keys()函数返回关联数组下标的列表;
%fruit = ("apples", 9,
"bananas", 23,
"cherries", 11);
@fruitsubs = keys(%fruits);
内嵌函数values()返回关联数组值的列表;
%fruit = ("apples", 9,
"bananas", 23,
"cherries", 11);
@fruitvalues = values(%fruits);
3)关联数组循环的两种方式:
A)利用keys:
%records = ("Maris", 61, "Aaron", 755, "Young", 511);
foreach $holder (keys(%records)){
$record = $records{$holder};
}
B)Perl提供一种更有效的循环方式,使用内嵌函数each(),如:
while (($holder, $record) = each(%records)) {
# stuff goes here
}
操作符
数值比较操作符:>、=、<等;
字符串比较操作符描述:
lt小于 gt大于 eq等于 le小于等于 ge大于等于 ne不等于
cmp比较,返回 1, 0, or -1
常用系统函数:
$part = substr($string, $initial_position, $length);
substr、index、split、join
mkdir、opendir、unlink
open、close、seek
print、chomp、localtime/time
pack/unpack
values/keys
字符串操作函数:
1、Perl字符串处理:http://itsunmoon.iteye.com/blog/1744225
http://blog.csdn.net/liuzhoulong/article/details/6794342
2、perl字符串处理函数:http://blog.csdn.net/aldenphy/article/details/4066007
文件结构
一、打开、关闭文件
语法为:open (filevar, filename),其中filevar为文件句柄,filename为文件名,其路径可为相对路。
打开文件时必须决定访问模式,在PERL中有三种访问模式:读、写和添加。要注意的是,不能对文件同时进行读和写/添加操作。
读模式形式:open(infile,"<infile");
写模式形式为:open(outfile,">outfile");
添加写模式形式为:open(appendfile, ">>appendfile");
关闭:close pf_in;
二、读文件
语句$line = <MYFILE>; #从文件中读取一行数据存储到简单变量$line中并把文件指针向后移动一行。<STDIN>为标准输入文件,通常为键盘输入,不需要打开。默认读单行赋给系统变量$_.
语句@array = <MYFILE>;把文件的全部内容读入数组@array,文件的每一行(含回车符)为@array的一个元素。
三、写文件
形式为:
open OUTFILE, ">outfile";
print OUTFILE ("Here is an output line.\n");
注:STDOUT、STDERR为标准输出和标准错误文件,通常为屏幕,且不需要打开。
1、perl中文件操作:http://blog.sina.com.cn/s/blog_6072546301016fz7.html
模式匹配
1.形式:由反斜线包含:/def/即模式def。其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line);
2.操作符=~,检验匹配是否成功:
$result = $var =~ /$Reg/;
若在该字符串$var中找到了该模式$Reg,则返回非零值,即true,不匹配则返回0,即false。!~则相反。
注意:@result = $var =~ /$Reg/;结果保存于数组@result 中。
3.常用作字符串的查找与替换。
$strline =~ s/s+//g; #去除空格
控制结构
1)while;for;foreach;until;
2)退出循环为last,与C中的break作用相同;执行下一个循环为next,与C中的continue作用相同.
引用
引用就是指针,可以指向变量、数组、哈希表(也叫关联数组)甚至子程序,就是其地址。
引用定义,反斜线操作符\与C语言中传递地址的操作符&功能类似。
my $variavle = 22;
my $pointer = \$variable; #引用:\$variable
$$pointer = 100; #引用指向的变量的值:$variavle= 100
print $variavle;
Perl中的数组和哈希表始终是一维的。因此,数组和哈希表只保存标量值,不直接存贮数组或其它的复杂数据结构。
数组的成员要么是数(或字符串)要么是引用。
如果$pointe为指向变量$var的指针,$$pointe即为变量$var的值;
如果$pointer的值为一个数组@arr的指针,@$pointer即为该数组@arr,则通过形式@$pointer来访问数组中的元素:$$pointer[0],即是$arr[0]。
子程序
&sub1(&number1, $number2, $nubmer3); #调用 ...
sub sub1{
my($number1, $number2, $number3) = @_; #定义.参数传入
...
}
perl常用特殊变量列表
perl常用特殊变量列表:http://blog.csdn.net/caz28/article/details/7243660
perl 内置变量总结[FW]:http://hi.baidu.com/zhutov/item/9ba5b4f4132e61c80dd1c8c3
参考资料:
1、perl5教程:http://wenku.baidu.com/view/d694388c84868762caaed5f7.html
http://www.cbi.pku.edu.cn/chinese/documents/perl/index.htm
http://man.ddvip.com/web/perl/perl1.htm
2、Perl语言入门(第四版中文版):http://wenku.baidu.com/view/1573cc0f844769eae009eda1.html
Perl实例精解(第四版)
4、perl 帮助文档 perldoc:http://blog.sina.com.cn/s/blog_4be5711f01018pop.html
5、perl常用函数:http://wenku.baidu.com/view/746d31b069dc5022aaea0092.html
perl函数集:http://wenku.baidu.com/view/7d2a88165f0e7cd184253638.html
6、Perl 与 Python 之间的一些异同:http://www.ibm.com/developerworks/cn/linux/l-cn-perl2python/
7、Perl 编程格式指南:http://wenku.baidu.com/view/e0f7eaebb8f67c1cfad6b825.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。