[root@jhoa 2015]# cat 1.pl
sub marine {
$n = $n + 1;
print "\$n is $n\n";
}
marine;
marine;
marine;
marine;
marine;
marine;
[root@jhoa 2015]# perl 1.pl
$n is 1
$n is 2
$n is 3
$n is 4
$n is 5
$n is 6
返回值:
sub sum_of_fred_and_barney {
$fred + $barney; ###这就是子程序的返回值
}
子程序的返回值 是最后一次运算的结果 (不管是什么)
[root@jhoa 2015]# cat 2.pl
sub max {
my ($m,$n); #该语句块中的新私有变量
($m,$n) = @_; #将参数赋值给变量
if ($m > $n) {print "$m\n"} else {print "$n\n"}
}
max (1,2)
sub max {
my ($m,$n); #该语句块中的新私有变量
if (@_ != 2){print "请输入2个参数\n";
exit }
($m,$n) = @_; #将参数赋值给变量
if ($m > $n) {print "$m\n"} else {print "$n\n"}
}
max (1,10,1,2,3,4)
[root@jhoa 2015]# cat 3.pl
use strict;
$var += 1;
print "\$var is $var\n";
[root@jhoa 2015]# perl 3.pl
Global symbol "$var" requires explicit package name at 3.pl line 2.
Global symbol "$var" requires explicit package name at 3.pl line 3.
Execution of 3.pl aborted due to compilation errors.
[root@jhoa 2015]# cat 3.pl
use strict;
my $var += 1;
print "\$var is $var\n";
[root@jhoa 2015]# perl 3.pl
$var is 1
子程序返回值:
my @names = qw/fred barney betty dino wilma pebbles bamm-bamm/;
#子程序的返回值
my $result = &which_element_is("dino",@names);
sub which_element_is {
my ($what ,@array) = @_;
foreach (0..$#array) { #数组 @array 中所有元素的下标
if ($what eq $array[$_]){
return $_; ##一发现就提前返回
}
}
-1;
}
print "子程序的返回值是 $result\n";
[root@jhoa 2015]# cat a1.pl
my @names = qw/fred barney betty dino wilma pebbles bamm-bamm/;
#子程序的返回值
my $result = &which_element_is("xxxx",@names);
sub which_element_is {
my ($what ,@array) = @_;
foreach (0..$#array) { #数组 @array 中所有元素的下标
if ($what eq $array[$_]){
return $_; ##一发现就提前返回
}
}
return -1;
}
print "子程序的返回值是 $result\n";
[root@jhoa 2015]# perl a1.pl
子程序的返回值是 -1
第四章 子程序和返回值
最新推荐文章于 2023-10-07 20:48:13 发布