首页 > 代码库 > perl 函数返回hash引用

perl 函数返回hash引用

perl 函数返回hash引用

my %h=%{foo()} #接收hash

sub foo{

   my %fh;

   $fh{a}=1;

   return \%fh;      #返回hash引用

}

grep??

在hash中,当检验一个元素值是否被定义是用defined,当检验一个key在hash中是否存在时,用exists。

if(defined $hash{$key}){...}

if(exists $hash{$key}){...}

正则匹配时,=~之间不能有空格!!!

一个句柄可以多次使用,但每次使用都要open文件再close文件。如果只open一次文件,再多次使用,最后close文件,可能会出现意料外的结果!!!

open(inn,"A.txt");

Eval("B.txt");              #两次调用Eval函数

Eval("C.txt");

close(inn);

sub Eval{

     my ($file) = @_;

     open(in,$file);      #每次调用Eval时都会重新open & close文件。使用同一个句柄,读取不同的文件,每次都是从头开始读文件,OK!

     while(<in>){

         $line1 = $_;

         $line2 = <inn>; #第二次调用读A文件时,从第一次调用最后一次读取到的A文件位置的下一行开始读。

     }                         #如果第一次调用时将A文件读取完毕,第二次调用将读不到任何内容,这可能不是本想要的结果!

                                #如果两次调用Eval都想从头读取同一文件A,那么应该在Eval函数体中open A & close A。

     close(in);

}

写文件:

open(out,">D.txt");    #写入文件,如果D已经存在,则已存在文件会被新写入内容覆盖。

open(OU,">>E.txt");   #写入文件,如果E已经存在,则新写入内容附加在已存在文件的后面。