天天看点

Per学习笔记[3]

Per学习笔记

1.子程序

(1)子程序的定义可以在程序的任意位置,且不需要在定义之前有任何声明。

(2)子程序的定义是全局的,可以在子程序中使用全局变量。

(3)所有的Perl 子程序都会返回值,在Perl 中返回值和不返回值是没有区别的。当Perl遍历此子程序时,将会计算每一步的值,此子程序中最后计算的值将被返回。注意:不是程序的最后一行。

(4)Perl的子程序如果带有参数,会自动将此子程序的参数存到默认数组@_中,第一个参数值为$_[0],其他依次为$_[1]...

调用Perl带有参数的子程序时,如果传入的参数过多,那么多余的参数会被忽略掉;如果传入的参数过少,额外的会用undef补上。

(5)@_是perl子程序的一个私有变量。

my关键字在子程序内部创建私有变量,私有变量仅对该子程序起作用。

定义私有变量:

my $fred,$betty; --没有定义$betty变量

my ($fred,$betty);--两个变量均定义了

如果新的变量没被赋值的话:标量变量会自动赋与undef,而数组变量会赋与空列表。

(5)告诉Perl 进行更严格的语法检测: use strict;

(6)立刻从perl的子程序中退出,而不再执行其余的代码:return;

(7)在调用子程序时可以省略符号&,但是前提是子程序的定义必须在调用之前。

如果子程序和Perl的一个内嵌程序同名,则必须使用&来调用它。编译器将在调用之前检查其定义,而非直接将它当作内嵌的函数来处理。加上&,可以确保你调用了此子程序;不加,则仅当没有同名的内嵌函数时才能调用到它:

本文转自 yubowei 51CTO博客,原文链接:http://blog.51cto.com/samyubw/223766

继续阅读