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); ? my和local声明的变量 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"; } foo(5,10) 输出为: 68 100 67 100 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |