把代码划分到逻辑单元

ZDNet软件频道 时间:2004-02-13 作者:ZDNet China |  我要评论()
本文关键词:perl
使一个子程序包含一段独立的代码,这样的方法,就可以使得Perl语言中的子函数能够帮助把代码分解划分成一个个的逻辑单元。子功能块同样也可被用于创建一些大段的没有名称的代码,这样在返回的时候就可以用它们来进行传递。
本文译自Builder.com,未经许可请勿转载

使一个子程序包含一段独立的代码,这样的方法,就可以使得perl语言中的子函数能够帮助把代码分解划分成一个个的逻辑单元。子功能块同样也可被用于创建一些大段的没有名称的代码,这样在返回的时候就可以用它们来进行传递。

子功能块支持下面的基本语句:

sub Name Prototype Attributes Block

所有这四个参数都是有可选择性的,但是Name和Block这两个参数中至少有一个要被具体化。因为参数Prototype和Attributes都很少用到,在这里我们就不讨论这两个参数了。

普通的定义和调用子程序的语句和大多数的编程语言差不多,如:

# declare and define subroutine 'foo'

subfoo

{

    print "foo";

}

# now call foo

foo();

声明一个没有定义的子程序,可以省略其代码段。定义一个匿名的子程序,就是定义一个没有名称,只包含代码的子程序,如:

# declare subroutine bar without defining it

sub bar;

# create an anonymous subroutine

$coderef = sub { print 'anonymous'; }

&$coderef;

# call the subroutine

子程序的参数通常是用特殊的数组@_来传递的。这意味着一个子程序可以改变那些传递给它的变量值,如$_[0], $_[1]等等。

为了完成一个调用函数的值传递,只需要将数组@_复制到一些特定的变量中去。下面是典型的perl语言代码:

subfoo

{

    my ($key, $value) = @_;

    print "$key = $value ";

}

声明子程序可以避免函数受到其它程序的影响,同样也可以提高函数的复用性。



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134