首页 > 代码库 > Perl语言学习笔记 day 2

Perl语言学习笔记 day 2

1、在Perl中,子程序名与变量名属于不同的命名空间,可以使用同一个名字分别命名子程序和变量,但不建议这样使用。

2、子程序的定义是全局的,同名的子程序后边的会覆盖掉前边的定义。

3、定义子程序

sub subProgram{

#body

}

4、调用子程序

&subProgram

5、所有的子程序都有返回值,默认最后一行的运算结果为返回值。

6、子程序未定义参数时,传递的参数默认传给"@_",可以通过$_[0]、$_[1].....访问;

7、在子程序中创建私有变量

my($m,$n);

my不会改变赋值时的上下文;

my变量只在其所在的最内层语句块(如for、foreach等)使用,超出则无效;

如果不在任何语句块中,则对整个程序文件有效,作为整个程序文件的私有变量使用;

my 后边加括号,括号内的变量都被声明,不加括号只对紧跟其后的那个变量有用,my($m,$n)、my $m,$n;

8、use strict:使用更严格的语法规则,对当前语句块和剩下的部分有用;

9、如果Perl在语法上可以识别出是子程序调用,则可以省略“&”,但是子程序名与Perl内置函数同名的时候,“&”不可省略;

10、持久性私有变量

例:

sub run{

state $n = 0;#初始化一次,再次执行会被忽略

$n +=1;

}

无法用于数组和哈希类型的变量;