溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何接收Perl函數(shù)的參數(shù)

發(fā)布時(shí)間:2021-12-07 09:19:39 來(lái)源:億速云 閱讀:153 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了如何接收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í)!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI