perl学习日记3(函数)

原文:http://blog.chinaunix.net/space.php?uid=9398085&do=blog&id=1677705

函数的格式

sub shift_to_uppercase{

@words=qw(cia fbi un nato unicef);

foreach(@words){

$_=uc($_); #换成大写

}

return(@words);

}

@acronyms=shift_to_uppercase();

print "@acronyms";

输出为:CIA FBI UN NATO UNICEF

 

C语言不同,在perl中,perl的变量默认为全局变量

例如:

sub moonweight{

 

return($weight/6);

}

$weight=120;

print moonweight;

要使变量成为函数的专用变量,使用my操作符

sub moonweight{

my $weight;

$weight=@_;

return($weight/6);

}

print moonweight(120);

程序中的其他函数都不能访问$weight的值,全局变量和专用变量可以拥有相同的名字

 

my声明多个专用变量

my($larry,@curly,%moe);

大部分时候,使用如下形式

sub player_stats{

my($at_bats,$hits,$walks)=@_;

# Rest of function...

}

这种方法能够创建一个与程序员友好的函数,它的变量都是函数的专用变量,因此它们不会影响其他的函数,或者受其他函数的影响(包括程序的主体)。当子例程运行结束时,所有专用变量均被撤消。

 

递归函数

sub factorial {

my($num)=@_; #将参数传递给变量$num

return(1) if ($num<=1);

return ($num*factorial($num-1));

}

print factorial(6);

 

mylocal声明的变量

sub bar{

($a,$b)=@_;

$b=100;

$a=$a+1;

print $a,"\n",$b,"\n";

}

sub foo{

my($a)=67;

local($b)=@_;

bar($a,$b);

print $a,"\n",$b,"\n";

}

foo(5,10)

输出为:

68

100

67

100

你可能感兴趣的:(函数,职场,perl,休闲)