偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Perl語(yǔ)言中Perl函數(shù)返回值問(wèn)題解析

開(kāi)發(fā) 架構(gòu)
Perl語(yǔ)言有很多值得學(xué)習(xí)的地方,你對(duì)Perl函數(shù)返回值的問(wèn)題是否熟悉,這里和大家分享一下,希望本文的介紹能讓你有所收獲。

本文和大家重點(diǎn)討論一下Perl函數(shù)返回值問(wèn)題,在Perl語(yǔ)言中,return語(yǔ)句可以返回一個(gè)標(biāo)量值或者一個(gè)列表,這個(gè)標(biāo)量值可以是一個(gè)變量,或者一個(gè)表達(dá)式的最后求值。

Perl函數(shù)返回值

在Perl語(yǔ)言中,return語(yǔ)句可以返回一個(gè)標(biāo)量值或者一個(gè)列表,這個(gè)標(biāo)量值可以是一個(gè)變量,或者一個(gè)表達(dá)式的最后求值,如:return1;<===>return(1);return$a+$b;<===>return($a+$b);
然后,一個(gè)Perl函數(shù)返回值,并不止一個(gè),有的時(shí)候會(huì)有多個(gè)值需要返回,這是就要用到列表,這個(gè)列表可以包含多個(gè)變量值。

一、單一變量的Perl函數(shù)返回值

  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;  

 二、多個(gè)標(biāo)量的Perl函數(shù)返回值

  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;  
  16.  

 三、數(shù)組的Perl函數(shù)返回值

  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=  
  16. #!!!在這里,我們?cè)鞠M玫降慕Y(jié)果應(yīng)該是:  
  17. @result_a=1,2  
  18. @result_b=30,40  

但實(shí)際上卻并不是這樣,這里一點(diǎn)需要注意的是:Perl函數(shù)返回值中的列表是被“鋪平(flattened)的”,也就是說(shuō):
return(@var_a,@var_b);<====等價(jià)===>return($var_a[0],$var_a[1],$var_b[0],$var_b[1]);

所以這個(gè)時(shí)候,return將會(huì)把returnlist里面的值,和接受returnlist里面的變量一一對(duì)應(yīng)起來(lái),當(dāng)遇到數(shù)組是表示接受所有值。所以,解決這個(gè)問(wèn)題就需要使用引用,如:
 

  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  

 所以對(duì)于哈希變量的返回也可以做同樣的處理,當(dāng)有標(biāo)量,數(shù)組,哈希變量一起混合使用的時(shí)候也應(yīng)該做同樣的處理。

【編輯推薦】

  1. 構(gòu)造函數(shù)中Perl方法用法解析
  2. Perl文件句柄概念詳解
  3. 解析四大Perl操作符用法
  4. 淺析Perl面向?qū)ο缶幊逃梅?/a>
  5. Perl標(biāo)量轉(zhuǎn)換函數(shù)用法指南

 

責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-19 10:01:57

Perl函數(shù)

2010-07-21 10:32:05

Perl函數(shù)返回值

2010-07-21 09:50:51

Perl調(diào)試

2010-07-20 10:02:15

Perl類

2010-07-13 15:34:09

Perl語(yǔ)言

2010-07-19 15:37:48

Perl日期時(shí)間

2010-07-19 09:16:47

Perl包

2010-07-20 10:23:24

Perl類

2010-07-23 13:46:27

Perl語(yǔ)言

2010-07-19 13:49:17

Perl函數(shù)

2010-07-23 13:07:39

Perl

2010-07-19 14:20:57

Perl函數(shù)

2010-07-26 16:23:23

Perl語(yǔ)言

2010-07-16 16:56:01

Perl構(gòu)造函數(shù)

2010-07-19 14:13:41

Perl函數(shù)

2010-07-21 10:18:41

Perl map函數(shù)

2010-07-21 14:18:27

Perl函數(shù)

2010-07-20 09:23:30

Perl構(gòu)造函數(shù)

2010-07-20 14:41:55

Perl語(yǔ)法

2010-07-23 13:23:10

Perl語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)