Perl函数返回值用法指导

本文和大家重点讨论一下Perl函数返回值的概念,在Perl中,return语句可以返回一个标量值或者一个列表,这个标量值可以是一个变量,或者一个表达式的最后求值。

专注于为中小企业提供网站建设、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业溪湖免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

Perl函数返回值

在Perl中,return语句可以返回一个标量值或者一个列表,这个标量值可以是一个变量,或者一个表达式的最后求值,如:return1;<===>return(1);return$a+$b;<===>return($a+$b);
然后,一个Perl函数的返回值,并不止一个,有的时候会有多个值需要返回,这是就要用到列表,这个列表可以包含多个变量值。

一、单一变量的Perl函数返回值

 
 
 
  1. #Functiondefinition.
  2. subget_value()
  3. {
  4. my$var;
  5. $var=1;
  6. return($var);
  7. }
  8. #########Mainscript
  9. my$result;
  10. $result=get_value();
  11. print"\$result=$result\n";
  12. #######printresultis:
  13. $result=1;

 二、多个标量的Perl函数返回值

 
 
 
  1. #Functiondefinition.
  2. subget_value()
  3. {
  4. my($var_a,$var_b);
  5. $var_a=1;
  6. $var_b=2;
  7. return($var_a,$var_b);
  8. }
  9. #########Mainscript
  10. my($result_a,$result_b);
  11. ($result_a,$result_b)=get_value();
  12. print"\$result_a=$result_a\n\$result_b=$result_b\n";
  13. #######printresultis:
  14. $result_a=1;
  15. $result_b=2;

 三、数组的Perl函数返回值

 
 
 
  1. #Functiondefinition.
  2. subget_value()
  3. {
  4. my(@$var_a,@var_b);
  5. @var_a=(1,2);
  6. @var_b=(30,40);
  7. return(@var_a,@var_b);
  8. }
  9. #########Mainscript
  10. my(@result_a,@result_b);
  11. (@result_a,@result_b)=get_value();
  12. print"\@result_a=@result_a\n\@result_b=@result_b\n";
  13. #######printresultis:
  14. @result_a=1,2,30,40
  15. @result_b=

 #!!!在这里,我们原本希望得到的结果应该是:
@result_a=1,2
@result_b=30,40
但实际上却并不是这样,这里一点需要注意的是:Perl中返回值中的列表是被“铺平(flattened)的”,也就是说:
return(@var_a,@var_b);<====等价===>return($var_a[0],$var_a[1],$var_b[0],$var_b[1]);
所以这个时候,return将会把returnlist里面的值,和接受returnlist里面的变量一一对应起来,当遇到数组是表示接受所有值。所以,解决这个问题就需要使用引用,如:

 
 
 
  1. #Functiondefinition.
  2. subget_value()
  3. {
  4. my(@$var_a,@var_b);
  5. @var_a=(1,2);
  6. @var_b=(30,40);
  7. return(\@var_a,\@var_b);
  8. }
  9. #########Mainscript
  10. my(@result_a,@result_b);
  11. my($result_a_ref,$result_b_ref);
  12. ($result_a_ref,$result_b_ref)=get_value();
  13. #hereneedtoencodethereference
  14. @result_a=@$result_a_ref;
  15. @result_b=@$result_b_ref;
  16. print"\@result_a=@result_a\n\@result_b=@result_b\n";
  17. #######printresultis:
  18. @result_a=1,2
  19. @result_b=30,40

 所以对于哈希变量的返回也可以做同样的处理,当有标量,数组,哈希变量一起混合使用的时候也应该做同样的处理。

分享文章:Perl函数返回值用法指导
转载来于:http://www.shufengxianlan.com/qtweb/news34/149284.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联