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