只用于当前作用域不自动传递给所调用子程序_第1页
只用于当前作用域不自动传递给所调用子程序_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vine’sPerl

our$x=7;our$y=17;suba

Vine’sPerl Lesson

my$x=10;local$y=5;print"ax$x,ay$y\n";}subbprint"bx$x,

ax10,ay5有字典变量x,有动态变量y,都是在a中定义bx, ax10,ay5有字典变量x,有动态变量y,都是在abx7by5有全局变量x(用our定义的),有动态变量y(在a中定义的1Vine’sPerl"my","local",andVine’sPerl

Vine’sPerl字典作用mydeclaresalexicalvariabletotally

•Perl程序的一般结构(务必用my定义变量 fromtheoutside可以模仿C语言的auto要模仿C语言的static变量,可以这样{my($s)= #单独用对{},在里面定义mysubgetnext{$s++;}#$s对外不可见,但每次调用getnext之间都保留$s的printgetnext;printgetnext;print全局作ourusevarsqw(变量列表),例usevarsqw($frob@mung

#!/usr/local/bin/perl-wusestrict;uselib"path";usemodule_names;require…maincodesubroutine1{…}subroutine2{…}subroutine3{…}…

回家作业(学号-用级数展开sin(x)编写子程序submysin,第个参数是x,第个参数是n,返 –缺省情况下都是全局变量,可以用$v,$::v,或

…podusuallystartshere

10 0.841470984807897 Vine’sPerlFileHandling---StandardStandardfilehandles(Already

Findout linkinhtml

Vine’sPerl datafollowing STDINinput,canbeSTDOUToutput,canbeSTDERRoutput,can’tberedirected,forerrorWritetofile,printSTDERRprint@lines; #defaultisSTDOUTprintFD$a, #notprintFD,Readfile,the<FILEHANDLE>,diamondoperator“<>”while($line=<STDIN>){};#readoneline@lines=<>;#readfilelistedin@ARGV#onebyone.When@ARGVis#empty,readfromSTDIN5

特 httpgethtt |perlx usemy@lines=grep chomp@lines;foreach(@lines){$_=~ $_=~}print"$_\n"foreach@lines;想想如何将这 工具互动起来7Vine’sPerlFileHandling---Vine’sPerlOpenauser

Vine’sPerlsubnameVine’sPerlsubfunc1($){…}#不带\的@和%不带\的@和%必须放在最后,ForForFor

open(FD,open(FD,open(FD,

submygrep(&@)sub

#&代码mygrep{/1+/}$a,$b#*句柄myopenHANDLE,ForpipeForpipe

open(FD,"可执行文件名open(FD,"|可执行文件名

submypush(\@@){my$list=shift;push@$list,@_;

#\@isarray-#\%ishash–ref,etc#@isarray,lastone–+>截断文件并打开读写 +<不截断文件并打开读写Close open(FD,"ls-la|");print #DOS$oldFD=select(FD);#chooseadefault6

subpi(){3.1416}#constanctfunctionprintpi+2;#print5.1416,not3.1416#takeitasprint(pi(+2))ifnot若用了函 常数可以用use pi=>3.1415更方这样定义的常数不用带前缀$,直接用8Vine’sPerl

Kindly

Vine’sPerl#!/usr/bin/perl-wusestrict;subpi_proto(){3.1416}subpi_normal{3.1416}submypush(\@@){my$list=shift;push@$list,@_;

pi_proto+2ispi_normal+2islistis(1,2,3,

循环的continuelocal和our变}print"pi_proto+2is",pi_proto+2,"\n";print"pi_normal+2is",pi_normal+2,"\n";mypush@list,1,2,3,4;printprint"listis(",(join",",@list),9

–函数原型 函数,左值函SubroutineVine’sPerlSubroutineDefineandcallananonymousmy$subref=sub{$_[0]+my$add=$subref;#makeacopyofsubroutine-print&{$add}(1,2),"\t",&$add(1,2),"\t",$add-Lvaluesubroutine

Vine’sPerlFileHanle---Binarymode Offsetin$var,nottotheread(FD,$var,$len,#read20bytesfromfileopen(FILE,subLsub:lvalue{$_[$index];#don'tsayreturn$_[$index]}my@a=qw(Imyteaching$"="

read(FILE,$buffer,20);seek(FD,$pos,

0:Beginof1:Currentposition2:EndoffileprintLsub(2,@a)='learning';#函数返回作值,修改为print@a\n";#@a

l(FD)#positionofsysopen(),sysread(),$integer=fileno(FD); FileHandle---FileTests,isPerlCheckifafile/dir/symbolic_linkdie"Filemissing!"ifnot-eCheckifnameisa -dCheckifnameisaregularfile:-fLotsmore-xoperationsinGlob,returnalistofmatchedfile/dir@txt_files=@root_files=<c:/*.*>;#PC/MS-OS@gif_files=这里的*?是文件名通配符,不能按照perlRE规则来理解

FileSystemPipelinesinVine’sPerlpipe()thenfork(),closeonesideuseVine’sPerlpipeREADHANDLE,WRITEHANDLEordie"Can'topenmymy$child_pid=die"Failtofork!\n"ifnotdefinedif($child_pid==0){#inchildprint"I'mchild.Mypidisclose$message=" ofather.".intrand100.".";print"Childsend\"$message\"tofather.\n";printWRITEHANDLE$message;close}else#inprint"I'mfather,pidis$$.Childpidisclose$message=join"",<READHANDLE>;print"Fatherreceived:$message\n"; Vine’sPerlTheUNIXfork()andVine’sPerlfork()TheonlywaytostartanewReturnchildpidtoparent,return0toCopyalldatasections.CodeareusuallyFiledescriptorsareexec(str)loadsanewimage(code),neverif(0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论