Chinaunix首页 | 论坛 | 博客
  • 博客访问: 858866
  • 博文数量: 253
  • 博客积分: 6891
  • 博客等级: 准将
  • 技术积分: 2502
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-03 11:01
文章分类

全部博文(253)

文章存档

2016年(4)

2013年(3)

2012年(32)

2011年(184)

2010年(30)

分类: Python/Ruby

2011-07-25 10:27:21

将参数列表传给子程序中的方法是,在程序名后面接括号,括号内存放参数列表,如:
$n = &max(10,15);

在Perl 中,会自动将此参数列
表(此参数列表的另一个名字)自动存放在一个叫做@_的数组中。子程序可以访问次数组变量来确定此参数的个数以及其值。这也就是说此子程序参数的第一个值存放在$_[0]中,第二个存放在$_[1],依次类推。但必须强调的是这些变量和$_这个变量没有任何关系,如$dino[3](数组@dino 的一个元素)和$dino 的关系一样。这些参数必须存放在某个数组变量中,而Perl存放在@_这个变量中。

  1. #!/usr/bin/perl
  2. #
  3. sub max{
  4. #下面这两种赋值的方法都是可以的。不过还是应该 用shift.
  5. #也可以这样
  6. #my($a,$b) = @_;
  7. #$a = $_[0];
  8. # $b = $_[1];
  9.     $a = shift;
  10.     $b = shift;

  11.     if($a > $b){
  12.         return $a;
  13.         }else{
  14.             $b;
  15.         }
  16. }

  17. $max = &max(8,5);
  18. print " the max one is $max\n";

  1. sub new_max{
  2.     my($max_so_far) = shift @_;
  3.     foreach(@_){
  4.         if($_ > $max_so_far){
  5.             $max_so_far = $_;
  6.         }
  7.     }
  8.     $max_so_far;
  9. }

  10. $new = &new_max(3,4,7,0,10);
  11. print "the max is $new\n";
现在,foreach 循环遍历@_剩下的值。循环中的控制变量是默认变量$_。(请记住,$_和@_没有任何关系;
阅读(638) | 评论(0) | 转发(0) |
0

上一篇:子程序

下一篇:子程序--parameters

给主人留下些什么吧!~~