中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Perl中如何使用內部函數

發布時間:2021-06-23 14:45:35 來源:億速云 閱讀:207 作者:Leah 欄目:開發技術

Perl中如何使用內部函數,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Perl內部函數

Perl函數主要分為兩類:數組運算符和命名的一元運算符。不同之處在于他們的優先級關系。(參閱優先級表)數組運算符需要一個以上的參數,而一元運算符不能超過一個參數。因此,一個逗號將結束一個一元運算符,對于數組運算符,只是起到分隔的作用。一元運算符一般只提供一個標量作為參數,而數組運算符可能會提供標量或者數組作為參數。如果二者都有,標量參數一般在前面,數組參數跟在后面。(注意,可以只有一個數組變量)比如,splice()有三個標量變量,后面加上一個數組,相反gethostbyname()有四個標量變量。

在語法描述中,數組運算符需要一個用LIST標識的數組作為參數。這些數組可能由標量參數和數組值混合組成;
數組值將包含在數組中,每個元素被插入數組中,形成一個更長一維的數組值。數組的元素應該用逗號分開。

下面列出的函數有的在參數兩邊有括號,有的沒有。(語法描述中省略括號)

如果你使用括號,一個簡單的規則是(偶爾會令人吃驚):如果是函數,沒有優先級的問題;如果它是一個數組運算符或者一元運算符
那么就要考慮優先級。并且,函數兩邊的空白和"("是不計算的--因此,有時候需要小心行事。看看下面的幾個例子:

print1+2+4; #Prints7.
print(1+2)+4; #Prints3.
print(1+2)+4; #Alsoprints3!
print+(1+2)+4; #Prints7.
print((1+2)+4); #Prints7.

前面說得似乎有點抽象,那么你在運行Perl時帶上-w開關你將得到一些警告信息,您可以根據這些信息再體會一下。例如,上面的例子會產生如下信息:
print(...)interpretedasfunctionat-line1.
Uselessuseofintegeradditioninvoidcontextat-line1.
有些Perl函數根本不需要參數,因此工作方式和一元運算符和數組運算符都不同,time和endpwent算是兩個典型吧.如,time+86_400實際上是time()+86_400.

對于可以用在標量或者數組的上下文中的函數,非失敗性的錯誤在標量環境下通常暗示返回了未定義的值或在數組環境下返回一個空的數組。

記住下面的重要原則:

沒有規則和數組環境下的表達式的行為和他的標量環境的行為有關系,反之亦然。這可能產生兩種完全不同的情況。在標量環境下,每個運算符和函數決定怎樣以最恰當的次序返回值。有些運算符在數組環境下返回數組的長度.,有些運算符返回的一個元素,有些返回數組中的***一個元素,有些返回成功執行的操作的語句數。通常,他們返回一些你需要的值,除非你需要連續性。

在標量環境下的命名數組在***眼看上去時和在標量環境下的列表有很大的不同。在標量環境下,你不能得到一個像(1,2,3)的列表,因為在編譯時,編譯器是知道當前環境的,它將在那里產生標量的逗號運算符,而不是用于分隔數組元素的逗號.也就是說,它永遠不會以一個數組開始。

一般說來,Perl中的函數對應相應的系統調用(如chown(2),fork(2),closedir(2),等等.)成功調用后返回真值,否則返回undef,下面將會提到。這一點和C的接口不一樣,C中出錯時將返回-1.但是也有幾個例外,他們是wait,waitpid,和syscall.系統調用出錯時出錯信息將通過特殊變量$!返回。其他的函數則不會,除非發生意外。

◆Perl函數分類

下面是Perl函數(包括看起來像函數的,如某些關鍵詞,命名運算符)的分類.

標量和字符串函數

chomp,chop,chr,crypt,hex,index,lc,lcfirst,length,oct,ord,pack,q/STRING/,qq/STRING/,reverse,rindex,sprintf,substr,tr///,uc,ucfirst,y///

正則表達式和模式匹配
m//,pos,quotemeta,s///,split,study,qr//

Perl函數之數字運算函數

abs,atan2,cos,exp,hex,int,log,oct,rand,sin,sqrt,srand

真實數組函數

pop,push,shift,splice,unshift

列表數據函數

grep,join,map,qw/STRING/,reverse,sort,unpack

Perl函數之真實哈希函數

delete,each,exists,keys,values

輸入輸出函數

binmode,close,closedir,dbmclose,dbmopen,die,eof,fileno,flock,format,getc,print,printf,read,readdir,

rewinddir,seek,seekdir,select,syscall,sysread,sysseek,syswrite,tell,telldir,truncate,warn,write

固定長度的數據或記錄函數

pack,read,syscall,sysread,syswrite,unpack,vec

Perl函數之文件,目錄函數

-X,chdir,chmod,chown,chroot,fcntl,glob,ioctl,link,lstat,mkdir,open,opendir,readlink,rename,rmdir,stat,symlink,umask,unlink,utime

流控制關鍵詞

caller,continue,die,do,dump,eval,exit,goto,last,next,redo,return,sub,wantarray

作用域關鍵詞

caller,import,local,my,package,use
Miscellaneousfunctions
defined,dump,eval,formline,local,my,reset,scalar,undef,wantarray

Perl函數之進程和進程組函數

alarm,exec,fork,getpgrp,getppid,getpriority,kill,pipe,qx/STRING/,setpgrp,setpriority,sleep,system,times,wait,waitpid

Perl模塊關鍵詞

do,import,no,package,require,use

類和面向對象關鍵詞

bless

看完上述內容,你們掌握Perl中如何使用內部函數的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜新市| 凭祥市| 张家川| 昌平区| 曲靖市| 定结县| 临汾市| 集贤县| 延川县| 龙岩市| 敦煌市| 郸城县| 黎平县| 中阳县| 龙口市| 深水埗区| 安溪县| 衡阳县| 玉树县| 锡林浩特市| 孝昌县| 阳江市| 山阳县| 武邑县| 论坛| 墨玉县| 越西县| 榕江县| 江陵县| 舞钢市| 武强县| 南部县| 汨罗市| 凤城市| 英吉沙县| 泸西县| 分宜县| 伊通| 杂多县| 卓资县| 金堂县|