您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何接收Perl函數(shù)的參數(shù),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Perl函數(shù)的參數(shù)接收方法
重拾Perl
原文:http://www.linuxsir.org/bbs/showthread.php?t=78216
Perl函數(shù)和作用域
語(yǔ)法:
SubsubroutineName
{
my(@argsTosubroutine)=@_;#參數(shù)通過(guò)這種方式傳遞給Perl函數(shù)
&doStuff;#執(zhí)行體
return(@returnValue);#
}
特殊變量@_是參數(shù)棧,它對(duì)于被調(diào)用的子程序來(lái)說(shuō)是本地?cái)?shù)據(jù)。每次調(diào)用子程序時(shí)就把參數(shù)放入到@_中。@_的工作方式非常象c和c++中的棧。因?yàn)閰?shù)棧是一個(gè)數(shù)組,所以傳遞給Perl函數(shù)的參數(shù)的數(shù)量沒(méi)有限制。而沒(méi)個(gè)參數(shù)都是一個(gè)標(biāo)量。當(dāng)調(diào)用子程序時(shí)候,參數(shù)棧的長(zhǎng)度是無(wú)關(guān)緊要的。無(wú)論把什么參數(shù)傳遞給讀者的子程序,Perl都將負(fù)責(zé)生成@_,并由子Perl函數(shù)決定是否接收參數(shù)。
◆操作參數(shù)棧:
(在Perl中任何數(shù)組的下標(biāo)都是從0開(kāi)始的)。
對(duì)于@_象其他類(lèi)型的數(shù)組一樣可以通過(guò)下標(biāo)來(lái)訪問(wèn)。
也可以利用shift和popPerl函數(shù)來(lái)訪問(wèn)@_.實(shí)際上shift和pop表示shift(@_)pop(@_)即為兩個(gè)對(duì)參數(shù)棧操作的Perl函數(shù)。表示從棧頂還是棧底對(duì)參數(shù)棧進(jìn)行操作。每次調(diào)用它們時(shí)候,他們?nèi)∽?**個(gè)參數(shù)(shift)或做后一個(gè)參數(shù)(pop)。然后在把參數(shù)存儲(chǔ)在左側(cè)的變量中,在繼續(xù)執(zhí)行時(shí)縮短@_.
本地@_棧。這個(gè)特性允許在一個(gè)Perl函數(shù)內(nèi)部調(diào)用Perl函數(shù),不必?fù)?dān)心本層Perl函數(shù)影響下層Perl函數(shù)。這種靈活性允許Perl使用遞歸程序,
返回值棧是Perl把值返回給子程序的調(diào)用者的方法。@values=subroutine($arguments).與參數(shù)棧相同,返回值棧也是數(shù)組形式。
子Perl函數(shù)把值返回給主Perl函數(shù),主要有兩種方法:
◆使用特殊的Perl函數(shù)返回方式
◆使用缺省方式(即查看子程序的***一個(gè)表達(dá)式)。
1.Return關(guān)鍵字
Return關(guān)鍵字允許你立刻中斷子Perl函數(shù),把參數(shù)棧內(nèi)部的值返回給調(diào)用Perl函數(shù)。
2.缺省返回
如果在Perl函數(shù)中沒(méi)有return語(yǔ)句,則子程序的***一句實(shí)際上是返回值棧
3.Wantarray
該P(yáng)erl函數(shù)就是Perl中可以使子Perl函數(shù)執(zhí)行雙重職責(zé)的Perl函數(shù)。Wantarray能判斷一個(gè)Perl函數(shù)是用在要求數(shù)組的環(huán)境還是要求在標(biāo)量的環(huán)境。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何接收Perl函數(shù)的參數(shù)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。