Perl简介(适合对C语言有点认识的读者)

作者:凯旋网络来源:凯旋网络
##########################################################################
#版权声明#
##
#本篇文章的版权为作者PinHongChen先生所有.允许网路上的非营利#
#转载.作者的电子邮件地址:honger.bbs@aidebbs.edu.tw#
##
#本文可在下列URL取得:#
#http://www.math.ncu.edu.tw/~chenym/perl/intro.html#
##########################################################################

Fromnews.ncu.edu.tw!news.cc.nctu.edu.tw!news.csie.nctu.edu.tw!aide_boardWedFeb1423:57:101996
Path:news.ncu.edu.tw!news.cc.nctu.edu.tw!news.csie.nctu.edu.tw!aide_board
From:honger.bbs@aidebbs.edu.tw(HerDoneMineChao!)
Newsgroups:tw.bbs.comp.www
Subject:BasicIntroductiontoPerl
Date:13Feb199606:54:46GMT
Organization:湾学术网路BBS实验站
Message-ID:<3BCREM$5jj@aidebbs.edu.tw>
X-Filename:www/M.824194486.A
NNTP-Posting-Host:eo4.ee.ntu.edu.tw
Lines:307

这是小弟的一篇介绍perl的文章,希望对你有用:

:)

Honger
PPPPEEEEERRRRL
PPERRL
PPPPEEEERRRRL
PERRL
PEEEEERRLLLLLL
1.Introduction
这不是perl的完整介绍,只是想将perl向Cprogrammer作个介绍,也许能
有所帮助!
perl是由LarryWall先生所写.目前的版本5.002,加入多项的功能.请
看perl.1,那有详细的条列.
一般而言,由awk,sed,shellprogramming写的东西可以轻易用perl来
处理,而且速度更快.在Cprogram中,特别是有关抽取文字档中的资讯,加以转化
处理,用perl写会更加方便,而且不用处处担心pointer和memoryallocation
的问题.当然了,perl执行时会有一道转成内部表示式的关,真正optimized
过的Ccode仍会比perlcode快.一般而言,perlcode会比Ccode短很多.
perl在regularexpression,list(array)和associativearray有很方
便的语法和不错的执行效率.连yacc(Berkeleyyacc)也可有产生perlcode的
选项,这对於prototyping十分方便.

2.PerlBasics

2.1BasicdatastructureandControlconstruct
perl的comment是从#之後开始.而perl并不区分string
,integer和floatpointnumber的datatype,统统以纯量代表.例如:

#Thisisacommentlinetilltheendofthisline
$x=1.5;
$y="Ihateshellprogramming";
$z=1.3e-27;

这个$是表示现在操作的是个纯量(相对於list或associativearray).
在C里的operator,如 ,-,*,/,,^, ,--, =,-=,*=,/=,=,==,!=,&&,
||,|,&全都有,意思也不变.不过若用於字串,.(dot)是表示连接的意思.
因此.=也有类似C中 =的意思.

$x=''Ihate'';
$x.="awkprogramming.";
print$x;

结果为Ihateawkprogramming.字串可用单或双括号围住.超出一行也没关.
也可以写的像shellprogramming中:

$x=<Thispartcanbeputwhat
youlikehere
1234567890
tillthesignasthebeginning.
END
相当於
$x="Thispartcanbeputwhat
youlikehere
1234567890
tillthesignasthebeginning.";

字串的比较有eq,ne,gt,lt,....就像那Fortran的operator.聪明的
你猜猜就知道啦.

至於control方面,如if,while,do..while,都和C类似.如:

$sum=0;
for($i=0;$i<10;$i ){
$sum =$i;
}

大括号是不可省略的!这和C不同.也可:

$sum=0;
$i=0;
while($i<10){
$sum =$i ;
}

如果你要从loop中跳出来,last相当於C中break,next相当於continue.

$sum=0;
$i=0;
while($i<10){
if($i2==0){
$sum =$i ;
next;
}elsif($sum>50){
last;
}
}

if叙述要注意大括号是不可省,还有elseif必须写成elsif.

2.2List
List和1dimensionarray在perl中没区别.用法如:

@a=(1,2,3);
$a[0]-=$a[1];
print"a[0]=$a[0]";

结果就是a[0]=-1.@是表示现在在操作list.双括号的字串中,若有变数,perl
会直接解译.如上例中的$a[0].List可以直接连接:

@a=(1,2,3);
@b=(4,5);
@c=(@a,@b,6,7);
print"@c";

结果是1234567.perl有特殊的变数,$#a来表示@a的最後index,
所以上例中,$c[$#c]就是7,也可写成$c[-1].那麽$c[-2]就是6了.

List还有些op
  • 广告推荐