Chinaunix首页 | 论坛 | 博客
  • 博客访问: 133312
  • 博文数量: 21
  • 博客积分: 576
  • 博客等级: 中士
  • 技术积分: 319
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-23 16:19
个人简介

没评论

文章分类

全部博文(21)

文章存档

2013年(1)

2012年(20)

我的朋友

分类: Python/Ruby

2012-05-25 14:03:31

子程序定义:

sub subroutine {              #定义名为subroutine的子程序

}

调用子程序:&subroutine

每个子程序都有返回值。子程序中最后一次的运算结果会被自动当成子程序的返回值。如果子程序最后执行的表达式是print语句,它的返回值通常为“1”,代表“输出成功”。

 

参数

可以把参数传递到子程序里,用法:&subroutine(参数1,参数2,…)

Perl会把这些参数存储到特殊的数组变量@_,在子程序里可以用$_[0],$_[1]等来调用。@_是子程序的私有变量,假如已经有了全局变量@_,则该变量在子程序调用前会被先存起来,并在子程序结束时恢复原本的值。

 

子程序中的私有变量只在该语句块中起作用,并且与其它全局的同名变量不冲突。用法如下:

sub max{

my($m,$n) = @_;    #在子程序里定义私有变量$m$n,并把参数@_赋值给它们

}

 

关于my私有变量

my变量可以用在任何的程序块中来限制其作用域范围。my操作符并不会更改变量赋值时的上下文:

my($num) = @_;  #列表上下文,把数组@_的第一个元素赋值给列表($num

my $num = @_;   #标量上下文,把数组@_元素个数赋值给标量$num

my在不使用括号时,只用来声明单个变量,如my $fred,$barney;   #只声明$fred

 

return操作符的作用:立即返回某个值,而不要执行子程序的其余部分。

 

持久性私有变量state

在子程序中用state声明变量的作用:在子程序多次调用期间保留变量的值,并将变量的作用域局限于子程序中。

阅读(515) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~