第4章 子程序

2020-03-07  本文已影响0人  Hannahhao

子程序(subroutine):用户自己创建的,以方便重复调用某段代码。

1. 定义子程序

关键字sub开头,再写上子程序名,然后写上花括号,封闭在其中的代码块就是子程序的主体。

sub count_gene {

}

子程序可以被定义在程序中的任意位置。

2. 调用子程序 &

在任意表达式里,子程序名前加上与号“&”,就表示调用这个子程序:
& count_gene;

3. 返回值

在Perl中,所有子程序都有一个返回值
子程序执行过程中最后一次运算的结果会被当作返回值,
或是使用return。

4. 参数

要传递参数列表到子程序里,只要在子程序调用的后面加上括在括号内的列表表达式就行。
参数列表会被传入子程序,让子程序随意使用。Perl会自动将参数列表化名为特殊的数组变量@(类似于@ARGV),该变量在子程序执行期间有效。
这表示子程序的第一个参数储存于_[0],第二个参数储存于
[1],以此类推。
参数列表总得存进某个数组变量里,好让子程序使用,Perl将这个数组叫做@_。

5. 子程序中的私有变量

Perl默认情况下所有变量都是全局变量。
但可以借助my操作符来创建私有变量,称之为词法变量。
这些变量属于封闭语句块中的私有变量。

6. 变长参数列表(不懂)

- 改进版的&max子程序

- 空参数列表

7. 用my声明的词法变量

词法变量可以用在任何语句块内,不仅限于子程序的语句块。

8. use strict编译指令

use strict 编译指令是要告诉Perl内部的编译器,接下来的代码块或是程序源文件的代码应该严禁遵循优良编程风格。
这样之后,Perl会坚持要求你声明所有新出现的变量,加上my。
一般比整个屏幕长的程序都应该加上use strict。

9. return操作符

return操作符:想在子程序执行到一半时停止运行。

- 省略 于号&:

如果编译器在调用子程序前看到过子程序的定义,或者Perl通过语法规则判断它只能是子程序调用,就可以像内置函数那样省略与号。
但&chomp不能省略&,因此由内置函数chomp。

10. 非标量返回值

子程序不仅可以返回标量值,还可以返回列表值。

11.持久化私有变量(略)

12. 子程序签名(略)

上一篇 下一篇

猜你喜欢

热点阅读