Perl学习笔记(四)--子程序

定义子程序

  要定义自己的子程序,可使用关键字sub,子程序名(不包含与号)以及用花括号封闭起的代码块,例如:

1 sub marine{
2      $n +=1;  #全局变量 $n
3      Print “Hello,sailor number $n \n”;
4 }

  子程序不需要事先声明

  子程序的定义是全局的,不存在私有子程序

  假如定义两个重名的子程序,后面的子程序会覆盖掉前面的那个

 

调用子程序

1 &marine;

 

返回值

  子程序中最后一次运算的结果都会被自动当成子程序的返回值

 

参数

  要传递参数列表到子程序里,只要在子程序调用的后面加上被括号圈引的列表表达式就行了,例如:  

1 $n = &max(10,15);

 

子程序中的私有变量

  默认情况,perl里面所有的变量都是全局变量,可以借助my操作符来创建私有变量,我们称之为词法变量

1  sub max{
2      my($m,$n);                #该语句块中的新私有变量 
3     ($m,$n) = @_;          #将参数赋值给变量
4      If($m>$n){$m}else{$n}    
5  }

 

改进的&max子程序

 1 $maxinum=$max(3,5,10,4,6);
 2 Sub max{
 3     my ($max_so_far) = shift @_;                   #数组中的第一个值,暂时把它当成最大值
 4     foreach(@_){                                        # 遍历数组@_中的其他元素
 5      if($_>$max_so_far){                  # 当前元素比$max_so_far更大吗
 6          $max_so_far = $_;
 7      }
 8     }
 9     $max_so_far;
10 }

 

use strict编译指令

   更严谨的代码和编译风格

 

return操作符

  立即停止执行子程序并返回某个值

posted @ 2015-03-20 18:24  水月灵心  阅读(270)  评论(0编辑  收藏  举报