将参数列表传给子程序中的方法是,在程序名后面接括号,括号内存放参数列表,如:
$n = &max(10,15);
在Perl 中,会自动将此参数列
表(此参数列表的另一个名字)自动存放在一个叫做
@_的数组中。子程序可以访问次数组变量来确定此参数的个数以及其值。这也就是说此子程序参数的第一个值存放在$_[0]中,第二个存放在$_[1],依次类推。但必须强调的是这些变量和$_这个变量没有任何关系,如$dino[3](数组@dino 的一个元素)和$dino 的关系一样。这些参数必须存放在某个数组变量中,而Perl存放在@_这个变量中。
- #!/usr/bin/perl
-
#
-
sub max{
- #下面这两种赋值的方法都是可以的。不过还是应该 用shift.
- #也可以这样
- #my($a,$b) = @_;
-
#$a = $_[0];
-
# $b = $_[1];
-
$a = shift;
-
$b = shift;
-
-
if($a > $b){
-
return $a;
-
}else{
-
$b;
-
}
-
}
-
-
$max = &max(8,5);
-
print " the max one is $max\n";
- sub new_max{
-
my($max_so_far) = shift @_;
-
foreach(@_){
-
if($_ > $max_so_far){
-
$max_so_far = $_;
-
}
-
}
-
$max_so_far;
-
}
-
-
$new = &new_max(3,4,7,0,10);
-
print "the max is $new\n";
现在,foreach 循环遍历@_剩下的值。
循环中的控制变量是默认变量$_。(请记住,$_和@_没有任何关系;
阅读(638) | 评论(0) | 转发(0) |