您的位置:首页 >> Web开发 >> CGI技术 >> 正文
CGI技术 RSS
 

Perl的经典用法

http://www.rdxx.com 06年04月21日 07:27 网海之贝 我要投稿

关键词: Perl


  }


因为要大量进行这样的工作,通常再进行一下简化,

把记录放到$_ 中,而不是$record中:

while (<FH>) {

# $_ 每次为文件中的一个记录

  }

  在Perl 5.004_04中,我们可以这样做:

     while ($record = <FH>) {

    # $record 每次为文件中的一个记录

  }


defined() 将自动加上,在Perl 5.004_04以前的版本中,该命令给出一个警示。要了解所用的Perl版本,可在命令行下打入:

perl -v

一旦我们读出了一个记录,通常打算去掉记录分隔符,(缺省值为换行符字符):

chomp($record);

Perl 4.0版本仅有chop()操作,去掉串的最后一个字符, 不管该字符是什么。chomp() 没有这么大的破坏性,如果有行分隔符存在,它仅去掉行分隔符。如果你打算去掉行分隔符,就用chomp() 来代替chop()。



  
  



读入多个记录
如果你调用<FH>,返回文件中剩余的记录。如果你处于文件尾,则返回空表:

@records = <FH>;

  if (@records) {

    print "There were ", scalar(@records), " records read.\n";

  }


在下面的一步中,进行赋值和测试两项工作:

if (@records = <FH>) {

    print "There were ", scalar(@records), " records read.\n";

  }

chomp() 也可适用对数组操作:

  @records = <FH>;

  chomp(@records);

对于任何表达式,都可以进行chomp操作,故你可以在下面的一步中这样写:

chomp(@records = <FH>);


什么是记录?

记录的缺省定义为:“行”。

记录的定义由$/ 变量控制的,该变量存放所输入的记录的分隔符,因为换行符字符(根据定义!)是用来分隔行的,故其缺省值为串“\n”。

例如,你可以用任何你想要替换的符号来代替“\n”。

  $/ = ";";

  $record = <FH>;  # 读入下一个用分号分隔的记录

$/可以取其它两个有趣的值:空串("") 和undef。

读入段落
$/ =""的写法是用来指示Perl读入段落的,段落是由两个或两个以上的换行符构成的文本块。这不同于设置为"\n\n",后者仅读入由两行组成的文本块。在这种情况下,将出现这样一个问题:如果有连续的空行存在,例如“text\n\n\n\n”,你既可以把它解释为一个段落 ("text"),也可以解释为两个段落 ("text", 后面跟两个换行符,以及一个空段落,后面跟两个空行。)

9 7 3 1 2 3 4 5 6 7 4 8 :


 
 
标签: Perl 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站