亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5853 | 回復(fù): 6
打印 上一主題 下一主題

如果在一個(gè)子程序中需要調(diào)用另一個(gè)子程序的返回值時(shí)...... [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-10-19 14:17 |只看該作者 |倒序?yàn)g覽
我寫了兩個(gè)子程序,在寫第二個(gè)子程序的時(shí)候需要調(diào)用第一個(gè)子程序的一個(gè)返回值(該子程序的返回值是一個(gè)哈希的引用),我是否需要將該返回值傳遞給第二個(gè)子程序才能正常調(diào)用? 不能在第二個(gè)子程序中直接調(diào)用第一個(gè)子程序的返回值嗎?

如下所示, (題外話:但發(fā)現(xiàn)不成功,只有將第一個(gè)子程序的返回傳遞給第二個(gè)子程序才行, 不知有何好的辦法)
$a = p1($_);

@b = p2($c);
#######################

sub  p1 {
express...
return $hashref;
}


sub p2 {
express...

$d = $a->{key};
.....
return @e;

}

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-10-19 14:42 |只看該作者
看了一會兒。。看懂你的意思了,直接調(diào)用就可以啊
比如@b = p2(p1($_));
這樣是沒有問題的吧?
還是我理解錯(cuò)了?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2007-10-19 16:23 |只看該作者
如下所示, (題外話:但發(fā)現(xiàn)不成功,只有將第一個(gè)子程序的返回傳遞給第二個(gè)子程序才行, 不知有何好的辦法)
$a = p1($_);

@b = p2($c);  ##$c和$a沒有什么關(guān)系,但如果不能在后面直接調(diào)用第一個(gè)子程序的返回值,就只能將這里寫成 @b = p2($c,$a), 這樣寫程序是work的。
#######################

sub  p1 {
express...
return $hashref;
}


sub p2 {
express...

$d = $a->{key}; #本意是想在這里直接調(diào)用$a引用,將其反引用的一個(gè)value傳遞給$d. 由于$a 是一個(gè)全局變量,所以,沒有通過參數(shù)傳遞,但發(fā)現(xiàn)不成功,只能用@b = p2($c,$a)。
.....express.......借助$d獲得最后的@e
return @e;

}

想知道是不是沒有其它的辦法了。

[ 本帖最后由 lipch 于 2007-10-19 16:25 編輯 ]

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-10-19 16:38 |只看該作者
哦,看懂了,你想在子程序中直接使用全局變量

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-10-19 16:44 |只看該作者
我這里可以成功的啊
我胡亂寫了一通,你參考下

  1. use strict;        use warnings;
  2. my $gg="hello\n";
  3. my $hashref={"ab"=>"AB","cd"=>"CD"};
  4. sub2(sub1($hashref));
  5. pr();

  6. sub sub1{
  7.         my $hashref=shift;
  8.         return $hashref;
  9. }

  10. sub sub2{
  11.         my $hr=shift;
  12.         print $hr->{cd},"\n";
  13. }
  14. sub pr
  15. {print $hashref->{ab};
  16. }
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-10-19 17:27 |只看該作者
是不是可以把那個(gè)要傳遞的值 弄成全局變量啊???

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2007-10-19 21:15 |只看該作者
原帖由 perljoker 于 2007-10-19 16:44 發(fā)表
我這里可以成功的啊
我胡亂寫了一通,你參考下

use strict;        use warnings;
my $gg="hello\n";
my $hashref={"ab"=>"AB","cd"=>"CD"};
sub2(sub1($hashref));
pr();

sub sub1{
        my $hashref=shift;
...


實(shí)際這樣作也是將子函數(shù)的值傳遞給了另一個(gè)子函數(shù),我是問能否在子函數(shù)中直接凋用另一個(gè)子函數(shù)的返回值。相當(dāng)于子函數(shù)的返回值是一個(gè)全局標(biāo)題,在另一個(gè)子函數(shù)直接調(diào)用樣。

但不知是否可以,也許從理論上我已經(jīng)錯(cuò)了,新手。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP