子程序
子程序的名字属于perl标识符,有些情况下,调用子程序时在其名字前加上与号&:表示调用
定义子程序:关键子sub
- sub marine {
- $n += 1;#全局变量$n
- print “hello, sailor number $n!\n”;
- }
- &marine #打印 hello 1
- &marine #打印 hello 2
调用子程序: &subname invocation/ call
在perl中,所有子程序都有一个返回值
返回值:子程序执行过程中最后一次运算的结果
print 语句的返回值通常是1。 子程序中添加代码时,要格外小心,确定你想要返回的值。
Perl子程序可以有参数,只需在子程序调用的后面加上括号列表表达式。
参数:将参数传入子程
$n = &max(10, 15); #max中可以用$_[0]指代10,$_[1]指代15
子程序中的私有变量
默认情况下perl中所有变量都是全局变量;但是可以借助my 操作符创建私有变量,称为词法变量 lexical variable
sub max {
my ($m, $n);
($m, $n) = @_;
if ($m > $n) {$m} else {$n}
}