perlglossary - Perl詞彙表
版本 5.20210520
Perl文檔中使用的詞彙表(技術和其他),源自《Programming Perl》第四版的詞彙表。粗體字中的單詞或短語在詞彙表的其他地方有定義。
其他有用的來源包括Unicode詞彙表 http://unicode.org/glossary/、自由在線計算機詞典 http://foldoc.org/、Jargon File http://catb.org/~esr/jargon/,以及維基百科 http://www.wikipedia.org/。
用來間接檢查或更新物件狀態(其實例變數)的方法。
您在調用函數或子程序時提供的純量值。例如,當您調用power("puff")
時,字符串"puff"
就是實際參數。參見也參數和形式參數。
有些語言直接處理值的內存地址,但這可能會像玩火。Perl提供了一套用於處理所有內存管理的石棉手套。在Perl中最接近地址運算子的是反斜杠運算子,但它給您一個硬引用,這比內存地址安全得多。
一系列清晰定義的步驟,說明得足夠清楚,甚至連電腦都能執行。
對某物的一個暱稱,其行為方式與您使用原始名稱完全相同,而不是使用暱稱。在foreach
循環的循環變量中,map
或grep
運算符的$_
變量中,sort
的比較函數中的$a
和$b
中,以及子程序調用的實際參數的每個元素中,都會隱式地創建臨時別名。通過import
將符號導入或通過對typeglobs
的賦值,在套件中明確地創建永久別名。在包變量的語法作用域中,通過our
聲明明確地創建對套件變量的別名。
我們放入詞中的字符類型。在Unicode中,這是所有字母,包括所有表意文字和某些附加符號,字母數字如羅馬數字以及各種組合標記。
可能選擇的選擇列表,您可以從中選擇一個,如“您想要A、B還是C?”正則表達式中的替代方案用單個垂直線分隔:|
。普通Perl表達式中的替代方案用雙垂直線分隔:||
。在布林表達式中的邏輯替代方案用||
或or
分隔。
用於描述通過命名的變數直接訪問的參考物。這樣的參考物必須通過至少一個硬引用間接訪問。當最後一個硬引用消失時,匿名參考物將毫不留情地被摧毀。
一個更大、更花俏的類型的程序,有一個更花俏的名字,所以人們不會意識到他們正在使用一個程序。
你所使用的電腦類型,其中一個「電腦類型」代表所有使用相容的機器語言的電腦。由於 Perl 程式(通常)是簡單的文本檔案,而不是可執行的映像檔,因此相對於其他語言(例如 C 語言),它在運行時對所在的架構的敏感度要低得多,其他語言需要被編譯成機器碼。參見也平台和作業系統。
包含從命令列獲取的參數向量的陣列的名稱。如果使用空的<>
運算子,ARGV
是用於遍歷參數的檔案處理器的名稱,也是包含當前輸入檔案名稱的純量的名稱。
一個符號,例如+
或/
,告訴 Perl 執行你在小學應該學會的算術運算。
有序的一系列值,存儲在這樣的方式,以便你可以輕鬆地使用整數下標來訪問序列中的任何值,這個整數下標指定了值在序列中的偏移量。
一個古老的表示法,更正確地稱為列表上下文。
Larry Wall 為 Perl 創建的開源許可證,最大程度地提高了 Perl 的實用性、可用性和可修改性。目前的版本是 2。(http://www.opensource.org/licenses/artistic-license.php)。
美國資訊交換標準代碼(一個僅適用於不良地表示英文文本的 7 位元字符集)。通常鬆散地用來描述各種 ISO-8859-X 字符集的最低 128 個值,這些字符集是互相不兼容的 8 位元編碼,最好描述為半個 ASCII。參見也Unicode。
正規表達式的一個組成部分,必須為模式匹配為真,但本身不一定匹配任何字符。通常專指零寬斷言。
一個運算符的使命是改變變量的值。
一種常規賦值或由一個普通賦值和其他一些運算符組成的復合運算符,可以在原地更改變量的值;也就是相對於其舊值。例如,$a += 2
將2
加到$a
上。
見哈希。請。關聯數組是Perl 4的舊術語,用於表示哈希。一些語言稱其為字典。
確定當您有“A運算符B運算符C”時,如果兩個運算符具有相同的優先順序,您是先執行左邊的運算符還是右邊的運算符。像+
這樣的運算符是左結合的,而像**
這樣的運算符是右結合的。請參見駝峰第3章,“一元和二元運算符”以查看運算符及其結合性的列表。
用於事件或活動的,其相對時間排序不確定,因為有太多事情在同時進行。因此,異步事件是您不知道何時會發生的事件。
正規表達式的一個組件,可能匹配包含一個或多個字符的子串,並被後面的任何量詞視為不可分割的語法單位。(與可能不被量化的零寬斷言相對比。)
當德莫克利特將“原子”一詞用於不可分割的物質片段時,他的意思是字面上的不可分割的東西:ἀ-(不)+ -τομος(可切割)。原子操作是一個不可中斷的動作,而不是在無核區禁止的動作。
一個新功能,允許使用修飾符聲明變數和子程序,如 sub foo : locked method
。同時也是對物件的實例變數的另一稱呼。
對物件的運算符重載的一個功能,通過使用更基本的運算符可以合理推斷某些運算符的行為。這假設重載的運算符通常具有與常規運算符相同的關係。參見駝鳥書第13章“重載”。
自動將某物加一,因此稱為++
運算符。自動將某物減一則稱為“自減”。
按需加載。(也稱為“惰性”加載。)具體來說,為了代表未定義的子程序調用一個AUTOLOAD
子例程。
自動分割字符串,就像在運行在–p或–n下時–a 開關所做的那樣,以模擬awk。(另見AutoSplit
模塊,它與–a
開關無關但與自動載入有很大關係。)
一個希臘-羅馬詞語,意思是“使自己活過來”。在Perl中,存儲位置(lvalues)會根據需要自動生成,包括創建指向下一級存儲的任何硬引用值的生成。賦值$a[5][5][5][5][5] = "quintet"
可能會創建五個純量存儲位置,加上四個引用(在前四個純量位置中),指向四個新的匿名數組(用於保存最後四個純量位置)。但是自動活化的重點在於你不必擔心它。
描述性的編輯術語——“awkward”的縮寫。也巧合地指的是一種可敬的文本處理語言,Perl從中獲得了一些高級概念。
在正規表示式中,由未加修飾的括號捕獲的子模式的子串。在同一模式中後面的反斜線十進制數字(\1
、\2
等)將引用當前匹配中對應的子模式。在模式外部,編號變量($1
、$2
等)將繼續引用這些相同的值,只要該模式是當前動態範圍的最後一個成功匹配。
說:“如果我必須重新做一遍,我會做得不同。”然後實際上返回並以不同的方式重新做。從數學角度來看,這是從一棵可能性樹的未成功遞歸返回。當 Perl 嘗試使用正規表示式匹配模式時,它會回溯,並且先前的嘗試不起作用。參見駱駝第 5 章“模式匹配”中的“小引擎 That /Couldn(n’t)”一節。
意味著您仍然可以運行舊程序,因為我們沒有破壞任何它依賴的功能或錯誤。
一個足夠模糊的詞,被認為在 use strict 'subs'
下是非法的。在沒有這種約束的情況下,裸字被視為被引號包圍。
一種通用的對象類型;也就是說,更具體的類是基因上通過繼承從其他基類派生出來的類。尊重祖先的人也稱之為“超類”。
來自 Swift:以大端優先方式食用蛋的人。也用於描述將一個字的最重要位元組存儲在低字節地址中的計算機。通常被認為比小端優先的機器更優。另見 little-endian。
與以二進制表示的數字有關。這意味著基本上有兩個數字:0 和 1。也用於描述“非文本”文件,假定這樣的文件充分利用了其字節中的所有二進制位元。隨著 Unicode 的出現,這種區別,已經值得懷疑,失去了更多的意義。
一個接受兩個操作數的 運算子。
介於 0 到 1 之間的整數,包括 0 和 1。儲存資訊的最小單位。一個 位元組 或一美元的八分之一。(“Pieces of Eight” 一詞來自將舊西班牙銀幣分成 8 個位元,每個位元仍然有價值。這就是為什麼今天的 25 美分硬幣仍然被稱為“兩個位元”的原因。)
在電腦字中將位元向左或向右移動,這樣做會乘以或除以 2 的冪。
一個實際上被認為是一個位元序列的位元序列。
在企業生活中,對一件事情進行官方批准,例如:“工程副總已經批准了我們的 WebCruncher 項目。”同樣,在 Perl 中,對一個 參考 進行官方批准,以便它可以作為一個 對象 運作,例如 WebCruncher 對象。參見駱駝章節 27,“函數”中的 bless
函數。
當進程需要等待某些事情時所做的事情:“我的進程因為等待磁盤而被阻塞。”作為一個不相關的名詞,它指的是一個大塊資料,操作系統喜歡處理這樣大小的資料(通常是 512 或 8192 的 2 的冪)。通常指的是從磁盤文件傳入或傳出的資料塊。
由一系列 Perl 陳述 組成的一種語法構造,由大括號限定。例如,if
和 while
陳述以 BLOCK
的形式定義。有時我們也會說“block”來表示一個詞彙範圍;即,一個像 BLOCK
那樣的陳述序列,例如在 eval
或文件中,即使陳述不是由大括號限定。
通過一次傳遞一個 塊 來使輸入和輸出高效的方法。預設情況下,Perl 對磁盤文件進行塊緩衝。參見 緩衝區 和 命令緩衝。
在條件語句中使用的一種特殊的 純量上下文,用於決定表達式返回的 純量值 是 真 還是 假。不會被評估為字符串或數字。參見 上下文。
在您的程式中設置的一個位置,您已告訴調試器停止 執行,以便您可以查看是否有任何錯誤。
向多個目的地同時發送 數據報 的操作。
一種在80年代流行的致幻藥物,可能是在加州大學伯克利分校或附近開發的。在許多方面與處方藥物“System V”相似,但更有用。 (或者,至少更有趣。)完整的化學名稱是“伯克利標準發行版”。
在包含(可能)多個條目的 哈希表 中的位置,其鍵根據其哈希函數“哈希”到相同的哈希值。 (根據內部政策,除非您對內部或政策感興趣,否則您不必擔心這一點。)
資料的臨時儲存位置。資料進行 區塊緩衝 意味著當緩衝區滿時將資料傳送到其目的地。 列緩衝 意味著當接收到完整的一行時將其傳送出去。 命令緩衝 意味著每次執行 print
命令(或等效命令)時都會傳送。如果輸出是無緩衝的,系統會一次處理一個位元組,而不使用臨時儲存區。這可能效率不高。
在大多數地方有價值的八個位元的資料片段。
在 ’機器人’ 不想透露其方向時所說的一種類似雛鳥的語言(請參見 端)。命名源自 20 世紀後期編譯器和解釋器之間因相似原因而使用的一些類似語言。這些語言的特點是將所有內容表示為不依賴於架構的位元組序列。
許多人都喜愛的一種語言,因其內部 型別 定義、晦澀的優先順序規則和對函式調用機制的大量重載而著稱。 (實際上,人們最初之所以轉向 C,是因為他們發現小寫標識符比大寫更容易閱讀。)Perl 是用 C 編寫的,因此 Perl 從中借鑒了一些想法並不奇怪。
資料存儲庫。不要多次計算昂貴的答案,計算一次並保存結果。
一種參數傳遞機制,其中形式參數直接參考實際參數,並且子程序可以通過更改形式參數來更改實際參數。也就是說,形式參數是實際參數的一個別名。參見值呼叫。
一種引數傳遞機制,其中形式引數是實際引數的複本,而子例程不能通過更改形式引數來更改實際引數。參見按引用呼叫。
簡化為標準形式以便比較。
在模式匹配中記住的變數,如$1
和$2
,以及%+
和%–
。參見駱駝書第5章“模式匹配”。
在正則表達式中用圓括號將子模式包圍起來,以將匹配的子串存儲為反向引用。(捕獲的字符串在列表上下文中也作為列表返回。)參見駱駝書第5章“模式匹配”。
在不理解代碼的情況下複製和粘貼代碼,同時迷信地相信它的價值。這個詞源於處理探險者和殖民者的廢棄物的前工業文化。參見《神們一定瘋了》。
某些字符的一種特性。最初,排版工作者將大寫字母存儲在兩種情況中的上部,小寫字母存儲在下部。Unicode識別三種情況:小寫 (字符屬性 \p{lower}
),首字母大寫 (\p{title}
),和大寫 (\p{upper}
)。第四種情況映射稱為折疊大小寫,它本身不是一個獨立的情況,但它在內部用於實現大小寫折疊。並非所有字母都有情況,一些非字母也有情況。
以不區分大小寫的方式比較或匹配字符串。在Perl中,它是使用/i
模式修飾符、fc
函數和\F
雙引號轉義來實現的。
將字串轉換為四種Unicode 大小寫地圖之一的過程;在Perl中,這是通過fc
、lc
、ucfirst
和uc
函數實現的。
字串的最小個體元素。電腦將字符存儲為整數,但Perl允許您將其視為文本進行操作。用於表示特定字符的整數稱為該字符的代碼點。
在正則表達式中使用的方括號字符列表,用於指示在給定點上可能發生的任何字符。鬆散地說,任何預定義的字符集合都可以如此使用。
通過\p
或\P
元符號可匹配的預定義字符類別。Unicode為每個可能的代碼點定義了數百個標準屬性,而Perl也定義了一些自己的屬性。
包圍其操作數
的運算符,如角度運算符、括號或擁抱。
一個匿名子程序,在運行時生成對其的引用,即使這些匿名子程序已經超出了作用域,它仍然跟踪外部可見語彙變量的身份。它們被稱為“閉包”,因為這種行為使數學家感到閉合。
當您將其應用於子例程的引用時,ref
函式返回的字。另請參見CV。
一個可以為您在低級語言中編寫代碼的系統,例如實現編譯器後端的代碼。參見程式產生器。
電腦用來表示特定字符的整數。ASCII 碼點的範圍是 0 到 127;Unicode 碼點的範圍是 0 到 0x1F_FFFF;Perl 碼點的範圍是 0 到 2³²−1 或 0 到 2⁶⁴−1,取決於您的原生整數大小。在 Perl 文化中,有時稱為序數。
一個正則表達式的子模式,其真正目的是執行一些 Perl 代碼,例如(?{...})
和 (??{...})
子模式。
字符排序的順序。這由字符串比較例程使用,以決定例如在本詞彙表中將“排序序列”放在何處。
任何具有組合標記(\p{GC=M}
)的一般類別字符,可以是間隔或非間隔的。有些甚至是看不見的。跟在字形基字符後面的一系列組合字符一起組成一個單一的用戶可見字符,稱為字形。大多數但不是所有的音標都是組合字符,反之亦然。
在 shell 程式設計中,程式名稱及其引數的語法組合。更寬鬆地說,您在 shell(命令解譯器)中輸入的任何內容,都會啟動其執行某些操作。更寬鬆地說,這也可以指 Perl 語句,可能以標籤開始,並以分號結束。
Perl 中的一種機制,允許您將每個 Perl 指令的輸出存儲起來,然後作為對作業系統的單個請求進行刷新。通過將 $|
($AUTOFLUSH
)變量設置為 true 值來啟用它。當您不希望數據停留在原地,未按照預期的方式傳輸時,可以使用它,這可能是因為文件或管道的默認行為是使用區塊緩衝。
您在告訴 shell 執行一個命令時,一起提供給程式名稱的值。這些值通過 @ARGV
傳遞給 Perl 程式。
當前正在執行的程式名稱,在命令行上輸入。在 C 語言中,命令名稱作為第一個命令行引數傳遞給程式。在 Perl 中,它作為單獨的 $0
傳遞。
不影響程式意義的備註。在 Perl 中,註解以 #
字符開頭,並持續到行尾。
目前正在編譯的文件(或在 eval
情況下的字符串)。
將源代碼轉換為機器可用形式的過程。參見 編譯階段。
Perl 開始運行主程式之前的任何時間。參見也 運行階段。編譯階段主要花費在編譯時間,但也可能在運行時花費,當正在評估 BEGIN
區塊、use
或 no
聲明,或常量子表達式時。也會在編譯階段運行任何 use
聲明的啟動和導入代碼。
嚴格來說,編譯器是一個將另一個程式處理並輸出另一個包含程式以「更可執行」形式的檔案的程式,通常包含原生機器指令。根據這個定義,perl程式並不是一個編譯器,但它包含一種將程式轉換為更可執行形式(語法樹)的編譯器,它位於 perl 程式本身的進程中,由 解譯器 進行解譯。然而,也有擴展 模組 可以使 Perl 更像一個「真正」的編譯器。請參閱駱駝書第16章「編譯」。
當 Perl 試圖理解您的程式碼時,而不是當它認為自己知道您的程式碼意思並僅僅試圖執行它認為您的程式碼要做的事情時,這就是 執行時期。
一個不真正是一個 物件 的 參考 的「建構者」,例如匿名陣列或雜湊(或者也可以是奏鳴曲)。例如,一對大括號充當雜湊的組合器,一對方括號充當陣列的組合器。請參閱駱駝書第8章「參考」中的「建立參考」一節。
將一隻貓的鼻子黏貼到另一隻貓的尾巴上的過程。同樣也是兩個 字串 的類似操作。
一些「如果的話」的東西。請參閱 布林內容。
在電話中,來電者與被叫者電話之間的臨時電路。在網絡中,客戶端與伺服器之間的臨時電路也是同樣的類型。
任何一個 類別方法、實例 或 子例程 ,它組合、初始化、祝福並返回一個 物件。有時我們鬆散地使用這個術語來表示一個 組合器。
周圍環境或環境。周圍代碼給出的上下文決定了特定 表達式 應該返回何種類型的數據。三種主要上下文是 列表上下文、純量上下文 和 無效上下文。純量上下文有時被細分為 布林上下文、數值上下文、字符串上下文 和 無效上下文。還有一個“不關心”上下文(如果您關心的話,在 Camel 的第 2 章“一點點”中有處理)。
將多個物理 行 視為單個邏輯行的處理。在 Makefile 中,通過在 換行符 前放置反斜線來繼續行。根據 RFC 822 定義,郵件標頭通過在換行符後放置空格或制表符進行繼續。一般情況下,Perl 中的行不需要任何形式的繼續標記,因為空格(包括換行符)會被忽略。通常。
進程的屍體,以文件形式留在進程的 工作目錄 中,通常是由於某些致命錯誤而導致的。
綜合 Perl 存檔網絡(請參閱駱駝的序言和駱駝第 19 章“CPAN”以獲取詳細信息)。
典型的 C 編譯器的第一遍過程,處理以 #
開頭的行以進行條件編譯和宏定義,並根據當前定義對程序文本進行各種操作。也稱為 cpp(1)。
最後一個使用 select(FILEHANDLE)
指定的 文件處理器;如果未選定任何文件處理器,則為 STDOUT
。
編譯當前語句的 包。通過在程序文本中向後掃描當前 詞法作用域 或任何封閉的詞法作用域,直到找到包聲明為止。這就是您的當前包名。
參見 工作目錄。
在學術界,履歷是一種華麗的簡歷。在 Perl 中,它是一個內部的「代碼值」typedef,用於保存一個子程序。CV 類型是 SV 的一個子類。
一個裸露的、單一的語句,沒有任何大括號,懸掛在 if 或 while 條件語句上。C 允許這樣做。Perl 不允許。
一個數據包,例如一個 UDP 消息,(從涉及的程序的角度來看)可以獨立地在網絡上發送。 (事實上,所有的數據包在 IP 層面上都是獨立發送的,但像 TCP 這樣的流協議對你的程序隱藏了這一點。)
你的各種數據如何相互關聯,當你把它們全部放在一起時形成什麼樣的形狀,比如矩形表格或三角形樹。
一組可能的值,以及所有知道如何處理這些值的操作。例如,數字數據類型具有一定的數字集合,您可以使用這些數字進行操作,以及各種數學運算,但在字符串上進行這些操作可能毫無意義,比如 "Kilroy"。字符串有自己的操作,如連接。由許多較小的部分組成的複合類型通常具有用於組合和分解它們的操作,以及重新排列它們的操作。在現實世界中模擬物體的對象通常具有與真實活動相對應的操作。例如,如果您模擬一個電梯,您的電梯對象可能會有一個 open_door 方法。
代表「數據庫管理」例程,一組例程,使用磁盤文件模擬一個關聯數組。這些例程使用動態哈希方案來定位任何條目,只需兩個磁盤訪問。DBM 文件允許 Perl 程序在多次調用之間保持一個持久的哈希。您可以將您的哈希變量綁定到各種 DBM 實現。
一個聲明是一個斷言,它聲明某事存在,並可能描述它的特徵,但不承諾如何或在哪裡使用它。聲明就像你食譜中說明的一部分,“兩杯麵粉,一顆大蛋,四到五隻蝌蚪……”請參見語句,它的相反。請注意,一些聲明也可以作為語句使用。如果提供了主體,子例程聲明也起到了定義的作用。
某些東西告訴您的程式您想要什麼樣的變數。Perl 不需要您宣告變數,但您可以使用 my
、our
或 state
來表示您想要其他預設值。
從變數中減去一個值,例如“遞減 $x
”(表示從其值中減去 1)或“將 $x
減去 3”。
如果您沒有提供自己的值,系統會為您選擇的值。
具有意義。Perl 認為人們嘗試執行的某些操作是無意義的;特別是,對從未被賦予值的變數進行操作以及對不存在的數據執行某些操作。例如,如果您嘗試讀取超出檔案結尾的數據,Perl 將給您一個未定義的值。另請參閱false和 Camel 章節 27, “Functions” 中的 defined
項目。
一個字符或字符串,用於設置任意大小的文本對象的界限,不要與分隔符或終止符混淆。 “Delimit” 的真正含義只是“圍繞”或“封閉”(就像這些括號所做的那樣)。
一個類別在更通用的類別中定義一些其方法的類別,稱為基礎類別。請注意,類別不僅僅被分類為基礎類別或衍生類別:一個類別可以同時充當衍生類別和基礎類別,這有點優雅。
參見文件描述符。
釋放參考物的內存(首先觸發其DESTROY
方法,如果有的話)。
當物件正在考慮銷毀自身時調用的特殊方法。 Perl 程式的DESTROY
方法並不執行實際的銷毀;Perl 只是在需要時觸發該方法,以便類別可以執行任何相關的清理工作。
一個驚人的硬體小玩意(如磁碟機、磁帶驅動器、數據機、操縱杆或滑鼠),連接到您的電腦,操作系統試圖將其看作一個檔案(或一組檔案)。在Unix下,這些虛假的檔案通常存放在 /dev 目錄中。
一個 pod 指令。參見駱駝第23章,“普通的舊文件”。
一個包含其他檔案的特殊檔案。一些操作系統將其稱為“文件夾”、“抽屜”、“目錄”或“目錄”。
表示打開目錄以讀取其內容的特定實例的名稱,直到您關閉它。參見 opendir
函式。
有些人需要這個,有些人則避免。對於Perl來說,這是一種舊的說法,意思是 輸入/輸出層。
將某物發送到其正確的目的地。通常用作隱喻,表示將程序控制轉移到通過算法選擇的目的地,通常通過查找函式 引用 表或在對象 方法 中,通過遍歷繼承樹尋找方法的最具體的定義。
一個軟體系統的標準捆綁發布。默認情況下,包含源代碼。如果不是這種情況,將稱為“僅二進制”發行。
一些模塊同時存在於 標準庫 和 CPAN 上。這些模塊可能在兩個版本上進行開發,因為人們修改其中一個版本。目前的趨勢是解開這些情況。
一種附魔、幻想、幻影或魔術。當Perl的神奇效果不如您預期時,但似乎是奧秘的魔法、巫術或奇迹的產物時,就會說出來。[來自中古英語。]
DWIM 是 “Do What I Mean” 的縮寫,這個原則是指某事應該只是做你想做的事情,而不應有過多的麻煩。做“dwimming”的一段程式碼是一個“dwimmer”。Dwimming 可能需要大量的幕後魔法,如果這些魔法沒有適當地保持在幕後,則稱為 魔法。
動態作用域在一個動態範圍上運作,使變數在它們首次使用的區塊中以及在任何被該區塊餘下部分調用的子例程中可見。動態作用域的變數可以通過local
運算符暫時更改其值(並在稍後隱式恢復)。(請參見語彙作用域。)在更寬泛的意義上,指的是一個處於調用另一個子例程中間的子例程在運行時“包含”該子例程的方式。
源自多個來源。有些人可能會說是過多。
基本構建塊。當你談論一個數組時,它是構成該數組的項目之一。
當某物包含在另一物中時,特別是當這可能被認為是令人驚訝時:“我已經在我的編輯器中嵌入了一個完整的Perl解釋器!”
空的衍生類應該像其基類一樣行為的概念。
將介面與實現分開的抽象屏障(無論是否強制執行),它要求所有對象狀態的訪問僅通過方法進行。
參見小端和大端。
當在拷貝過程中更改一個值時。[源自法語“在通過中”,如象棋中的異國吃子動作。]
您的進程從其父進程繼承的環境變量的集合。通過%ENV
訪問。
一個機制,通過這種機制,一些高級代理(例如用戶)可以將其偏好傳遞給其未來的後代(子進程,孫子進程,曾孫進程等)。每個環境變量都是一個鍵/值對,就像哈希表中的一個項目。
文件結束。有時候用作隱喻,表示一個這裡文件的終止字符串。
當一個系統調用失敗時返回的錯誤號。Perl通過名稱$!
(或者如果你使用英文模塊,則為$OS_ERROR
)來引用該錯誤。
見元符號。
一個對錯誤的花俏術語。參見致命錯誤。
程序對錯誤做出的反應方式。Perl中的異常處理機制是eval
運算符。
丟棄當前進程的程序並用另一個程序替換它,而不退出該進程或釋放任何持有的資源(除了舊的內存映像)。
告訴操作系統可以運行這個程序的特殊標記。在Unix下實際上有三個執行位,使用哪個位取決於你是否獨自擁有文件,集體擁有文件,或者根本不擁有文件。
查看 狀態。
在這種情況下用作名詞,指的是已知的一種方式,可以破壞程序以使其執行作者未打算的操作。您的任務是編寫不易受攻擊的程序。
在Perl中,任何在字符串上下文中評估時會看起來像""
或"0"
的值。由於未定義的值會評估為""
,因此所有未定義的值都是false,但並非所有false值都是未定義的。
常見問題(雖然不一定常見到答案,尤其是如果答案包含在隨Perl標準附帶的Perl FAQ中)。
未捕獲的異常,導致在標準錯誤流上打印消息後終止進程。在eval
內部發生的錯誤不是致命的。相反,eval
在將異常消息放入$@
($EVAL_ERROR
)變量後終止。您可以使用die
運算符引發致命錯誤(稱為拋出異常),但這可能會被動態包含的eval
捕獲。如果未被捕獲,die
就會變成致命錯誤。
“creeping featurism”的語音轉換,指的是向程序中添加更多功能的生物衝動。
單一的數值或字串資料,是較長字串、記錄或行的一部分。變寬字段通常由分隔符號分隔(因此使用 split 來提取字段),而固定寬度字段通常位於固定位置(因此使用 unpack)。實例變數也被稱為「字段」。
命名的資料集合,通常存儲在磁碟上的一個目錄中的檔案系統中。大致就像一份文件,如果你喜歡辦公室的隱喻。在現代檔案系統中,你實際上可以給一個檔案取多個名字。一些檔案具有特殊屬性,如目錄和裝置。
作業系統用來跟蹤你正在談論的已打開檔案的小號碼。Perl 將檔案描述子隱藏在標準 I/O串流中,然後將串流附加到檔案處理器上。
檔案名稱的「萬用字元」匹配。請參閱 glob 函數。
一個標識符(不一定與檔案的實際名稱相關),代表一個特定的打開檔案的實例,直到你關閉它。如果你要連續打開並關閉幾個不同的檔案,可以使用相同的檔案處理器來打開它們,這樣你就不必撰寫獨立的程式碼來處理每個檔案。
一個檔案的名稱。這個名稱列在目錄中。你可以在 open 中使用它,告訴作業系統你要打開哪個檔案,並將該檔案與檔案處理器關聯起來,在你的程式中,直到你關閉它。
磁碟分割上的一組目錄和文件。有時被稱為“分割區”。在 Unix 下,您可以更改文件的名稱,甚至將文件從一個目錄移動到另一個目錄,而實際上並不移動文件本身。
內置的一元運算符,用於確定文件的某些屬性是否為真,例如使用–o $filename
來測試您是否是文件的擁有者。
設計用於接受輸入流並將其轉換為輸出流的程序。
首位上傳命名空間的作者自動成為該命名空間的主要維護者。 “先來者”權限將一個被指定為該角色的主要維護者與自動接收該角色的主要維護者區分開來。
我們傾向於避免使用此術語,因為它有很多含義。它可能表示一個不接受自己的參數的命令行開關(例如 Perl 的–n
和–p
標誌),或者更少見的是單位指示器(例如sysopen
中使用的O_CREAT
和O_EXCL
標誌)。有時非正式地用於指代某些正則表達式修改器。
一種使用“科學記號”來存儲數字的方法,使數字的精度與其大小無關(小數點“浮動”)。Perl 在無法使用整數時(有時被稱為“浮點數”)使用浮點數進行數字操作。浮點數僅是實數的近似值。
在緩衝區未滿之前清空緩衝區的操作。
遠比您想知道的更多。對某一個狹窄主題的詳盡論述,類似於超級常見問題集。參見 Tom 以了解更多。
在比較或匹配時,Unicode 使用的大小寫不敏感的映射。由於 Unicode 的複雜的一對多大小寫映射,比較小寫、標題大小寫或大寫都不可靠。折疊大小寫是一種小寫變體(對於某些代碼點使用部分分解的標準化形式) ,專門用於解決這個問題。
創建一個與父進程在概念上相同的子進程,至少在子進程開始有自己的想法之前是這樣。具有受保護記憶體的線程。
子程序用於識別其參數的通用名稱。在許多語言中,形式參數總是被賦予單獨的名稱;在 Perl 中,形式參數只是數組的元素。Perl 程序的形式參數是$ARGV[0]
、$ARGV[1]
等。同樣,Perl 子程序的形式參數是$_[0]
、$_[1]
等。您可以通過將值分配給my
列表來給參數指定單獨的名稱。參見也 實際參數。
一個規範,說明在某個地方放置多少個空格、數字和其他內容,以便使你要打印的內容看起來漂亮。
表示您不必支付金錢即可獲得它,但它的版權可能仍然屬於其他人(如 Larry)。
表示如果您將其非法拷貝交給朋友,我們發現了也不會有法律問題。事實上,我們寧願您將副本交給所有朋友。
歷史上,任何您免費提供的軟體,特別是如果您也提供源代碼。現在通常稱為 開源軟體。最近有一種趨勢是將該術語與 開源軟體 相對立地使用,僅指在自由軟體基金會的 GPL(通用公共許可證)下發布的免費軟體,但從詞源學上難以辯證。
在數學上,是將一組輸入值映射到特定輸出值的操作。在電腦中,是指返回一個 值 的 子程序 或 運算子。它可能有或沒有輸入值(稱為 參數)。
像 Larry 這樣的人,或者他奇怪的朋友之一。也指 Perl 要求在其變量上作為名詞標記的奇怪前綴。
這是個名字取得不當的功能—應該被稱為“期望您的母親為您收拾”。嚴格來說,Perl 不這麼做,但它依賴於一個引用計數機制來保持整潔。然而,我們很少嚴格地說話,通常會將引用計數方案稱為一種垃圾收集方式。(如果您使用了循環引用等內容使得髒亂,當您的解釋器退出時,將運行一個“真正”的垃圾收集器來確保一切都被清理。)
群組 ID—在 Unix 中,作業系統用來識別您及您的 群組 成員的數值群組 ID。
嚴格來說,是 shell 的 *
字符,用於在您嘗試生成文件名列表時匹配一個“glob”字符。寬鬆地說,是使用 glob 和類似符號進行模式匹配的行為。另見 fileglob 和 typeglob。
您可以從任何地方看到的東西,通常用於您程序中隨處可見的 變量 和 子程序。在 Perl 中,只有特定的特殊變量才是真正的全域變量—大多數變量(以及所有子程序)僅存在於當前的 包 中。全域變量可以用 our
声明。參見“Camel”第四章“Statements and Declarations”中的“Global Declarations”。
當 Perl 解釋器 被關閉時
像 Perl 這樣的語言擅長將原本不打算連接在一起的事物連接在一起。
在心智上所處理的片段大小。
石墨烯是一種碳的同素異形體,以六角形的晶格排列,厚度僅為一個原子厚。一個字形單元,或更完整地說,一個字形叢集字串是一個單一的用戶可見字元,可以由多個字符(程式碼點)組成。例如,換行加換行符號是一個單一的字形單元,但有兩個字符,而“ȫ”是一個單一的字形單元,但根據正規化的不同,可能有一個、兩個或三個字符。
一個子模式,其量詞想要匹配盡可能多的事物。
最初源自於舊的 Unix 編輯器命令“全球正則表達式搜尋並打印”,現在在一般情況下用於任何類型的搜尋,尤其是文本搜尋。Perl 具有內置的 grep 函數,可搜索符合任何給定標準的列表元素,而 grep(1) 程序則在一個或多個文件中搜索符合正則表達式的行。
一組您是其中成員的用戶。在某些操作系統(如 Unix)中,您可以將某些文件訪問權限授予您組中的其他成員。
內部的“全局值” typedef,保存一個型別環。GV 型別是 SV 的子類。
在解決技術問題方面非常聰明堅持,無論這些問題涉及高爾夫、打擊半獸人還是編程。駭客是一個中性詞語,道德上說。優秀的駭客不應該與邪惡的駭客或無知的腳本小子混淆。如果您混淆它們,我們會假定您要麼是邪惡的,要麼是無知的。
當您的程式需要回應某些內部事件時(例如訊號或遇到受運算子過載影響的情況),Perl 呼叫的子程式或方法。請參閱 回呼。參見 子程式 和 方法。
無序的鍵值對關聯,以便您可以輕鬆使用字串鍵查找其相關的資料值。此詞彙表就像一個雜湊,其中要定義的單詞是鍵,定義是值。有時也把雜湊稱為「關聯陣列」,但「雜湊」是更為常見的稱呼。
Perl 內部用來有效實作關聯陣列(雜湊)的資料結構。參見 桶。
包含某些必要定義的檔案,您必須在程式的其餘部分之前「先行」引入以執行某些不太常見的操作。C 標頭檔案的副檔名為 .h。Perl 實際上並沒有標頭檔案,儘管在歷史上,Perl 有時會使用副檔名為 .ph 的轉譯過的 .h 檔案。參見《Perl 程式設計指南》第 27 章「函式」中的 require
。(標頭檔案已被 模組 機制所取代。)
因為在 shell 中有類似的結構,假裝在命令後的行是一個獨立的檔案,直到某個終止字串。然而,在 Perl 中,這只是一種花式引述的形式。
16 進位數字,簡稱為「hex」。10 到 15 的數字通常用字母 a
到 f
表示。Perl 中的十六進位常數以 0x
開頭。
登錄時您所置入的目錄。在 Unix 系統上,名稱通常被放入 $ENV{HOME}
或 $ENV{LOGDIR}
中由 login 處理,但您也可以使用 (get
pwuid($<))[7]
找到它。(有些平台沒有家目錄的概念。)
程式或其他資料所在的電腦。
過度的自傲,這是宙斯會懲罰你的事情。也是使你寫(和維護)其他人不會說壞話的程式的品質。因此,這是程式設計師的第三個偉大美德。參見 懶惰 和 急躁。
“哈希值”(Hash Value)的縮寫,用於保存 Perl 的哈希的內部表示。 HV
型別是 SV 的子類。
對於計算機程序可能感興趣的任何東西的合法形成的名稱。許多語言(包括 Perl)允許標識符以字母開頭,然後包含字母和數字。Perl 還允許在它允許字母的地方使用連接標點符號,如底線字符。 (Perl 也有更複雜的名稱,如限定名稱。)
當計算機變得懶惰時你感到的憤怒。這使你寫的程序不僅僅是對你的需求做出反應,而是實際上預測它們。或者至少是假裝。因此,這是程式設計師的第二個偉大美德。參見 懶惰 和 傲慢。
一段程式碼實際上是如何執行其工作的。程式的使用者不應該指望實現細節保持不變,除非它們是公開 介面 的一部分。
獲取從另一個模塊導出的符號的訪問權限。參見 Camel 章節 27 “函數” 中的 use
。
將某物的值增加 1(或者如果指定的話,增加其他數字)。
在古代,查找實際索引(如電話簿)中的鍵的行為。但現在它僅僅是使用任何種類的鍵或位置來找到相應的 值,即使沒有索引參與。事情已經惡化到 Perl 的 index
函數僅僅是定位一個字符串在另一個字符串中的位置(索引)。
評估為可用作檔案處理器的表達式:一個字符串(檔案處理器名稱)、一個類型環(typeglob)、一個類型環引用或一個低階 IO 物件。
如果程式中的某個值不是您正在尋找的值,但指示值所在位置,那就是間接。這可以使用符號引用或硬引用完成。
在英語文法中,動詞和其直接對象之間的簡短名詞片語,指示動作的受益者或接收者。在 Perl 中,`print STDOUT "$foo\n";` 可以理解為“動詞 間接對象 直接對象”,其中 STDOUT 是 print 動作的接收者,而 `"$foo"` 是要打印的對象。同樣,在調用方法時,您可能會將調用者放在方法和其參數之間的與格槽中。
$gollum = new Pathetic::Creature "Sméagol";
give $gollum "Fisssssh!";
give $gollum "Precious!";
在使用間接對象調用語法時,落在方法調用和其參數之間的句法位置。(該槽由它與下一個參數之間缺少逗號來區分。)在這裡,STDERR 落在間接對象槽中。
print STDERR "Awake! Awake! Fear, Fire, Foes! Awake!\n";
位於其操作數之間的運算符,例如 `24 * 7` 中的乘法。
從祖先那裡獲得的東西,無論是基因還是其他。如果您恰好是一個類,則您的祖先稱為基類,您的後代稱為派生類。參見單一繼承和多重繼承。
“類的一個實例”的簡稱,表示該類的一個對象。
參見實例變量。
一個對象的方法,與類方法相對。
一個方法其invocant是一個物件,而不是一個套件名稱。類別的每個物件都共享該類別的所有方法,因此實例方法適用於該類別的所有實例,而不是適用於特定的實例。另請參閱類別方法。
一個物件的屬性;與類別整體不同,這些資料是與特定物件一起儲存的。
沒有小數部分的數字。例如 1、2、3,等等,包括 0 和負數。
程式碼承諾永遠提供的服務,與其實作相對,後者可以在任何時候自由更改。
在另一個值的中間插入純量或列表值,以便它看起來一直在那裡。在 Perl 中,變數插值發生在雙引號字串和模式中,而列表插值則發生在建構要傳遞給列表運算子或其他需要 LIST
的構造時。
嚴格來說,一個讀取第二個程式並直接執行其指示的程式的程式,而不是像編譯器那樣先將程式轉換成不同形式的程式。Perl 不符合此定義,因為它包含一種編譯器,該編譯器將程式轉換為更可執行的形式(語法樹)並在 perl 進程內部解譯。
呼叫神明、守護者、程式、方法、子例程或函式以使其執行你認為它應該執行的動作。通常我們“呼叫”子例程,但“調用”方法,因為聽起來更酷。
從檔案或設備中輸入或輸出。
內部I/O物件。也可指間接物件。
在資料與輸入或輸出結果之間的過濾器之一。
印度淡啤酒。同時也是國際音標字母表,用於全球的語音符號標註。大量使用Unicode,包括許多組合字符。
網際網路協定,或智慧財產權。
進程間通訊。
兩個物件之間的關係,其中一個物件被認為是另一個更具體版本的物件:“駱駝是哺乳動物。”由於泛型物件實際上只存在於柏拉圖意義上,我們通常對物件的概念添加一些抽象,並將關係視為泛型基類和具體派生類之間的關係。奇怪的是,柏拉圖類別並不總是具有柏拉圖關係—參見繼承。
重複執行某項操作。
一種特殊的編程小工具,用於跟蹤您在試圖迭代的內容中的位置。Perl中的foreach循環包含一個迭代器;哈希也有迭代器,允許您通過其進行each操作。
整數四,不要與六混淆,這是湯姆最喜歡的編輯器。IV還表示標量可以保存的內部整數值,不要與NV混淆。
“Just Another Perl Hacker”的縮寫,一段巧妙但神秘的Perl代碼,當執行時會評估為該字符串。常用於說明特定的Perl功能,並且在USENET簽名中被視為持續的混淆Perl比賽。
您為語句命名的名稱,以便您可以在程式的其他地方談論該語句。
使您盡力減少總體能源消耗的品質。它使您撰寫節省勞力的程序,其他人會發現它們有用,然後記錄您所撰寫的內容,以便您不必回答那麼多問題。因此,程序員的第一個偉大美德。也因此,本書。另請參閱急躁和傲慢。
正則表達式引擎傾向於匹配模式的最左出現,然後在匹配位置給定後,傾向於最長的匹配(假設使用貪婪量詞)。請參閱駱駝第5章“模式匹配”,以獲得更多有關這個主題的信息。
將數字乘以2的某個冪的位移。
一個標記的花俏術語。
一個解析器的花俏術語。
對標記化的花俏術語。
通過顯微鏡查看您的牛津英語詞典。(也稱為靜態作用域,因為詞典變化不是很快。)類似地,查看存儲在每個作用域的私有字典(命名空間)中的變量,這些變量僅從其聲明點到它們聲明的詞法作用域的末尾可見。—同義詞:靜態作用域。—反義詞:動態作用域。
一般來說,是一組程序集。在古代,指的是.pl文件中的子程序集合。在現代,更常指的是系統中所有Perl模組的整個集合。
在 Unix 中,一系列零個或多個非換行字符,以 換行 字符結束。在非 Unix 機器上,即使底層的 作業系統 有不同的想法,C 库也會模擬這一點。
此行之前讀取的行數加 1。Perl 為其打開的每個源文件或輸入文件保留一個獨立的行號。當前源文件的行號由 __LINE__
表示。當前輸入行號(對於最近通過 <FH>
讀取的文件)由 $.
($INPUT_LINE_NUMBER
)變量表示。如果可用,許多錯誤消息會報告這兩個值。
作為名詞,表示 文件 的一個 目錄 中的名稱。一個給定的文件可以有多個連結到它。這就像在電話簿中使用不同名字列出相同的電話號碼一樣。作為動詞,將部分 編譯 文件中的未解析符號解析為(幾乎)可執行的映像。連接通常可以是靜態的或動態的,與靜態或動態作用域無關。
表示由逗號分隔的表達式列表的句法結構,評估為產生一個 列表值。在 LIST
中的每個 表達式 都在 列表上下文 中評估並插入到列表值中。
一組有序的標量值。
預期表達式(由調用它的代碼)將返回一個值列表而不是單個值的情況。希望一個LIST
參數的函數告訴這些參數它們應該生成一個列表值。參見上下文。
對值列表執行操作的運算子,例如join
或grep
。通常用於命名的內建運算子(例如print
、unlink
和system
),它們不需要在其參數列表周圍使用括號。
一個未命名的暫時純量值列表,可以在程序中從任何生成列表的函數傳遞給任何提供列表上下文的函數或結構。
來自 Swift:以小端方式吃蛋的人。也用於將字中最不重要的字節存儲在低字節地址的計算機。通常被認為優於大端計算機。參見大端。
在各處意義不同。在 Perl 中,全局變量可以通過local
運算符在動態作用域中進行本地化。
表示概念“和”、“或”、“亦或”和“非”的符號。
一個斷言,用於查看當前匹配位置右邊的字符串。
一個斷言,用於查看當前匹配位置左邊的字符串。
一個執行重複動作的結構,就像過山車一樣。
迴圈內部的任何一個語句,可以使迴圈提前停止循環或跳過一次迭代。一般來說,你不應該在過山車上嘗試這個。
附加到迴圈(或過山車)的一種關鍵或名稱,以便迴圈控制語句可以討論它們想要控制哪個迴圈。
在Unicode中,不僅是一般類別為小寫字母的字符,還包括具有小寫屬性的任何字符,包括修飾字母、字母數字、一些其他符號和一個組合標記。
能夠作為左值的物件。
語言專家用來表示可以分配新值的存儲位置,例如變量或數組的元素。 "l" 縮寫為 "left",表示分配的左側,這是左值的典型位置。可作為左值的函數或表達式是可以分配值的,例如 pos($x) = 10
。
一種形容詞式的偽函數,以某種宣告性方式扭曲左值的含義。目前有三個左值修飾符:my
、our
和 local
。
嚴格來說,附加到變量(如 $!
、$0
、%ENV
或 %SIG
)或任何綁定變量的任何額外語義。當你調整這些變量時會發生奇妙的事情。
一個遞增運算符,知道如何增加ASCII字母表中的字母,以及數字。
當您訪問或分配給它們時,具有副作用的特殊變數。例如,在 Perl 中,更改 %ENV
陣列的元素也會更改子進程將使用的相應環境變數。讀取 $!
變數可獲取當前系統錯誤號碼或消息。
控制程序編譯的文件。Perl 程序通常不需要 Makefile,因為 Perl 編譯器具有足夠的自我控制。
顯示在線文檔(手冊頁)的 Unix 程序。
手冊中的“頁”,通常通過 man(1) 命令訪問。手冊包含一個 SYNOPSIS、一個 DESCRIPTION、一個 BUGS 列表等,通常比一個頁面長。有手冊描述 命令、系統調用、庫函數、函數、設備、協議、文件 等內容。在本書中,我們將系統中安裝的任何標準 Perl 文檔(如 perlop 或 perldelta)稱為手冊頁,無論其在系統上安裝的格式如何。
參見 模式匹配。
參見實例變量。
這始終表示您的主記憶體,而不是您的磁盤。使問題變得複雜的是,您的計算機可能實現 虛擬 內存;也就是說,它會假裝擁有比實際內存更多的內存,並且它將使用磁盤空間來保存非活動位。這可能使您感覺像您擁有比實際更多的內存,但這並不是真正內存的替代品。關於虛擬內存最好的事情是,當您的真正內存耗盡時,它使您的性能逐漸降低,而不是突然降低。但是,如果您耗盡虛擬內存,您的程序也可能死掉——如果您先不斷使用您的磁盤的話。
不應該正常處理的 字符。哪些字符在不同的上下文中應該作為元字符特別對待,這在很大程度上因情況而異。您的 shell 會有某些元字符,帶有雙引號的 Perl 字符串 會有其他元字符,而 正則表達式 模式則包含所有雙引號元字符以及一些額外的元字符。
某些我們會稱為元字符的東西,除了它是一個超過一個字符的序列之外。通常,序列中的第一個字符必須是真正的元字符,以便其他字符與之一起表現不當。
如果你告訴一個物件,它可以執行的一種動作。請參閱駝峰書第12章,“物件”。
Perl通過@INC
進行的路徑。默認情況下,這是一個雙深度優先搜索,一次查找定義的方法,一次查找AUTOLOAD
。但是,Perl讓您可以使用mro
進行配置。
一個只包含每個發布版本的CPAN鏡像,可能是使用CPAN::Mini
創建的。請參閱駝峰書第19章,“CPAN”。
“小即美”的信念。矛盾的是,如果你用一種小語言說話,它就變得很大,如果你用一種大語言說話,它就變得很小。去理解吧。
在stat(2)系統調用的上下文中,指的是保存權限位和文件類型的字段。
請參閱語句修飾符、正則表達式和左值,順序不一定。
定義一個與(幾乎)相同名稱的包的文件,可以導出符號或充當一個物件類別。 (模組的主要.pm文件可能還會加載其他支持模組的文件。)請參閱內建的use
。
當你對餘數而不是商感興趣時的整數除數。
當你說一種語言,但電腦認為你在說另一種語言時。例如,如果你發送UTF‑8,但是電腦認為你發送了Latin-1,那麼你會看到奇怪的翻譯,顯示出各種奇怪的字符。這個術語在日語中寫作「文字化け」,意思是“字符腐爛”,這是一個恰當的描述。在標準的IPA音標中發音為[modʑibake],或者近似地為“moh-jee-bah-keh”。
縮寫代表 Perl mongers 之一,是 Perl 的供應者。
當當前語句完成時將死亡的臨時值。
參見 方法解析順序。
具有多個下標以查找單個元素的數組。Perl 使用 引用 實現這些—請參閱駱駝第9章「數據結構」。
從你的母親和父親那裡得到的特徵,混合在一起不可預測地。 (另請參閱 繼承 和 單一繼承。) 在計算機語言(包括 Perl)中,給定類別可能有多個直接祖先或 基類 的概念。
名稱的域。你不必擔心這個域中的名稱是否已經在另一個域中使用。參見 包。
不是數字。Perl 用於某些無效或無法表達的浮點運算的值。
套接字的最重要屬性,就像你的電話號碼一樣重要。通常是 IP 地址。另請參見 端口。
表示行尾的單個字符,在 Unix 下的 ASCII 值為 012 八進制(但在 Mac 上為 015),在 Perl 字符串中用 \n
表示。對於 Windows 機器寫入文本文件,以及對於某些物理設備如終端,單個換行符會自動由你的 C 库轉換為換行符和回車符,但通常不進行任何轉換。
網絡文件系統,允許您將遠程文件系統掛載為本地文件系統。
將文本字符串轉換為另一個但等效的 規範(或兼容)表示,然後可以將其進行比較以確定是否相等。Unicode 識別四種不同的正規化形式:NFD、NFC、NFKD 和 NFKC。
具有零的數值的字符。它由 C 用於終止字符串,但 Perl 允許字符串包含空字符。
零元素的列表值,在 Perl 中用 ()
表示。
(有時拼寫為 nummification 和 nummify。)Perl 的術語,表示隱式轉換為數字;相關動詞為 numify。 數值化 意圖押韻於 穆米化,而 numify 則與 穆米化 押韻。這與英文的 numen,numina,numinous 無關。我們原本很久以前就忘了多加一個 m,有些人習慣了我們奇怪的拼寫,所以就像 HTTP_REFERER
的缺失字母一樣,我們奇怪的拼寫一直保留下來。
類別的一個實例。知道自己是什麼類型(類別)並且由於是什麼類別而能做什麼的東西。您的程式可以要求物件做事情,但物件可以決定是否要做。有些物件比其他物件更樂於助人。
以八進制表示的數字。僅允許使用數字 0 到 7。在 Perl 中,八進制常數以 0 開始,例如 013。另見 oct
函式。
從字串或陣列的開頭移動到其中特定位置時需要跳過的項目數。因此,最小位移量為零,而不是一,因為要到達第一個項目時無需跳過任何項目。
整個電腦程式塞進一行文字。
可自由取得且無商業限制的程式,其原始碼可自由重新散佈。更詳細的定義請參閱http://www.opensource.org/osd.html。
產生一個值供運算子操作的運算式。參見優先順序。
在裸機上執行並隱藏管理程序和裝置的詳細資料的特殊程式。通常以寬鬆的意義指示特定的程式文化。這種寬鬆的意義可以在不同程度的具體性上使用。在一個極端,您可能會說所有版本的Unix和Unix相似系統都是相同的作業系統(令許多人感到不快,尤其是律師和其他倡導者)。在另一個極端,您可以說這個特定供應商的這個特定版本的作業系統不同於這個或任何其他供應商的其他版本的作業系統。Perl在不同的作業系統上比許多其他語言更具可移植性。參見架構和平台。
將某些輸入值轉換為某些輸出值的小工具,通常內建於具有特殊語法或符號的語言中。特定的運算子可能對您給定作為其參數(運算元)的資料類型和您想從中得到的資料類型有特定的期望。
一種可以對內建運算符進行的一種過載,使它們可以在物件上工作,就像物件是普通的純量值一樣,但實際的語義由物件類別提供。這是通過overload pragma設置的—請參見駝駝第13章,“過載”。
抽象字符的整數值。與代碼點相同。
給符號或構造物添加其他含義。實際上,所有的語言都會在一定程度上進行過載,因為人們擅長根據上下文來理解事物。
隱藏或無效化同名的其他定義。(不要與過載混淆,後者添加了必須以其他方式消除歧義的定義。)為了更進一步混淆問題,我們使用了具有兩個過載定義的詞語:一是描述您可以定義自己的子例程以隱藏同名的內建函數(請參見駝駝第11章,“模塊”中的“覆寫內建函數”部分),二是描述您可以在衍生類別中定義一個替換方法以隱藏基類的同名方法(參見駝駝第12章,“對象”)。
除超級使用者外,對文件擁有絕對控制權的用戶。如果實際擁有者允許,文件也可以有一個群組用戶,他們可以共同擁有文件。請參見權限位。
用於全局變量、子例程等的命名空間,以便它們可以與其他命名空間中同名的符號分開。從某種意義上說,只有封包是全局的,因為封包的符號表中的符號只能通過命名封包從封包外部編譯的代碼訪問。但從另一方面來說,所有封包符號也都是全局的—它們只是井然有序的全局。
縮寫,指記憶體暫存區。
見引數。
見基底類別。
見語法樹。
試圖將可能形式不正確的程式轉換為有效語法樹的微妙但有時殘酷的藝術。
透過應用修補程式來修復。在駭客領域中,是指兩個程式版本之間的差異清單,當您想修復錯誤或升級舊版本時,可能會應用patch(1)程式。
完整的文件名,例如/usr/bin/perl。有時與PATH
混淆。
在模式匹配中使用的模板。
使用模式(通常是正則表達式)對字符串進行各種方式的匹配,以查看是否有任何方式使其符合。通常用於從文件中提取有趣的片段。
Perl作者上傳服務器(http://pause.perl.org),是通往CPAN的模塊的閘道。
Perl使用者群體,其名稱源自紐約Perl愛好者,是第一個Perl使用者群體。在http://www.pm.org可以找到您附近的Perl愛好者。
由文件的擁有者設置或取消的位,以允許或禁止其他人訪問。這些標誌位是stat
內建函數返回的模式字中的一部分。在Unix系統上,您可以查看ls(1)手冊頁以獲取更多信息。
當您執行Perl++
兩次時所得到的結果。僅執行一次會使您的頭髮捲曲。您必須將其增加八次才能洗頭髮。起泡、沖洗、重複。
一個直接的連接,將一個進程的輸出直接傳遞給另一個進程的輸入,而無需中間的臨時文件。一旦管道建立,兩個相關的進程就可以像與普通文件交談一樣進行讀寫,但有一些注意事項。
一系列連續的進程,由管道相連,其中每個進程將其輸出流傳遞給下一個。
程序運行的整個硬件和軟件上下文。如果使用依賴於平台的語言編寫的程序,在更改以下任何內容時可能會出現錯誤:機器、操作系統、庫、編譯器或系統配置。由於perl是用C實現的,所以perl解釋器必須為每個平台進行不同的編譯,但使用Perl語言編寫的程序基本上是與平台無關的。
用於將文檔嵌入到Perl代碼中的標記。Pod代表“Plain old documentation”。參見駱駝第23章“Plain Old Documentation”。
表示pod部分開始的序列,例如=head1
。
在像C這樣的語言中,包含某個其他項目的確切內存位置的變量。Perl在內部處理指針,因此您無需擔心它們。相反,您只需使用符號指針(如keys和variable names),或hard references,這不是指針(但像指針一樣並且實際上包含指針)。
一種概念,您可以告訴一個object執行某個通用操作,該對象將根據其類型以不同的方式解釋命令。[<希臘文 πολυ- + μορϕή,多種形式。]
在TCP或UDP套接字的地址中,該部分將在找到正確的機器後將封包定向到正確的進程,類似於您與公司接線員聯繫時提供的電話分機。同時,它也是將代碼轉換為在最初意圖之外的不同平台上運行的結果,或者表示這種轉換的動詞。
從前,可以在BSD和SysV下編譯的C代碼。通常指能夠輕鬆轉換以在另一個平台上運行的代碼,其中“輕鬆”可以根據您的喜好定義,並且通常已經進行了定義。只要努力,任何東西都可以被認為是可攜式的,例如移動房屋或倫敦橋。
將軟件從一個平台轉移到另一個平台的人。對於依賴於平台的語言(如C)編寫的程序進行轉移可能是困難的工作,但對於像Perl這樣的程序進行轉移卻是非常值得的。
指模式中的量詞和組,一旦它們獲得了某些東西,就拒絕放手。比更正式的不可回溯更為吸引人和易於發音。
可攜式操作系統介面規範。
“推送-彈出”代碼的內部簡寫;也就是,實現Perl堆棧機器的C代碼。
一個標準模塊,其實用的提示和建議在編譯時接收(並且可能被忽略)。Pragma都以全小寫形式命名。
在缺乏其他指導的情況下,決定應該首先發生的行為規則。例如,在缺乏括號的情況下,您總是先執行乘法再執行加法。
PAUSE允許主要維護者為命名空間分配共同維護者權限的作者。主要維護者可以通過將其分配給另一個PAUSE作者來放棄這一標誌性地位。參見駱駝第19章“CPAN”。
一個子程序。
正在運行的程序的實例。在像Unix這樣的多任務系統下,兩個或更多獨立的處理程序可能在同一時間獨立運行同一個程序——事實上,fork
函數的設計就是為了實現這種愉快的情況。在其他操作系統下,處理程序有時被稱為“線程”、“任務”或“作業”,通常有著微小的意義差異。
參見腳本。
一個以高級語言自動撰寫程式碼的系統。參見也程式碼生成器。
模式匹配,在匹配過程中可以從上一次結束的地方繼續進行。
在網絡中,一種經過共識的消息來回發送方式,以便使得兩方通訊不會過於混亂。
子程序聲明的可選部分,告訴Perl編譯器可以傳遞多少個以及什麼樣式的參數作為實際參數,這樣你可以編寫像內置函數一樣的子程序調用。(或者不解析,視情況而定。)
有時看起來像函數但實際上不是的構造。通常保留給左值修改器,如my
,上下文修改器,如scalar
,以及自選引號構造,q//
,qq//
,qx//
,qw//
,qr//
,m//
,s///
,y///
,和tr///
。
先前,引用指向一個陣列,其初始元素碰巧保存著一個哈希的引用。您以前可以將偽哈希引用視為陣列引用或哈希引用。偽哈希已不再受支援。
一個類似於文字的運算子 X,看起來像是文字的東西,例如,輸出擷取運算子,<literal moreinfo="none"
`>command
`
。
一個無人擁有的東西。Perl 受版權保護,因此不屬於公有領域—它只是免費提供和自由再分發。
一個虛擬的“權杖”,在 Perl 社區中傳遞,指示誰是某個開發領域的主要整合者。
一個南瓜持有者,負責抽水或至少對其進行初步處理的人。必須願意偶爾扮演偉大的南瓜的角色。
“指標值”,這是 Perl 內部討論中對char*
的稱呼。
當幾個相互關聯的事件的結果取決於這些事件的順序,但由於不確定的時間效應,無法保證該順序時,就存在競爭條件。如果兩個或更多個程序,或同一程序的不同部分,嘗試進行相同系列的事件,則一個可能會中斷另一個的工作。這是發現一個漏洞的好方法。
就檔案而言,具有正確權限位的檔案,可讓您存取該檔案。就電腦程式而言,寫得足夠好,讓某人有機會弄清楚它試圖做什麼。
一組相關的數據值,通常與唯一的鍵字段相關聯,在檔案或串流中。在Unix中,通常對應於行,或以空行結尾的一組行(“段落”)。/etc/passwd檔案的每一行都是一個記錄,以登錄名作為鍵,包含有關該用戶的信息。
在某種程度上以其自身的術語定義事物的藝術,在字典中是一個不好的作法,但在電腦程式中,只要您小心不要無限遞迴(這就像一個更壯觀的失敗模式的無限循環),通常會很好用。
參考所指的東西,可能有名稱,也可能沒有。常見的所指類型包括純量、數組、哈希和子程序。
請參見正則表示式。
一個具有各種解釋的實體,像一頭大象。對於電腦科學家來說,它是一個小語言的語法,其中一些字符串是合法的,其他則不是。對普通人來說,它是一個模式,您可以用它來找到變化的內容。Perl的正則表示式在理論上很不規則,但在常規使用中它們工作得很好。這是一個正則表示式:/Oh s.*t./
。這將匹配“Oh say can you see by the dawn's early light
”和“Oh sit!
”等字符串。請參見駱駝書第5章“模式匹配”。
對模式或替換的選項,例如 /i
可將模式視為不區分大小寫。
一個非目錄、裝置、具名管道或套接字,或符號連結的檔案。Perl 使用 –f
檔案測試運算子來識別常規檔案。有時被稱為“普通”檔案。
對編譯器具有特定內建含義的字,例如 if
或 delete
。在許多語言中(不包括 Perl),使用保留字來命名其他任何東西都是不合法的(這就是為什麼它們是保留的)。在 Perl 中,您只不能使用它們來命名標籤或檔案處理器。也稱為“關鍵字”。
請求評論,儘管含蓄,但這是一系列重要的標準文件的名稱。
將數字除以2的某個冪的位移。
具體行為集的名稱。角色是一種在不繼承的情況下向類添加行為的方法。
超級使用者(UID
== 0)。同時也是檔案系統的頂層目錄。
當有人認為您應該閱讀精美手冊時,您會收到這個指示。
在 Perl 開始執行主程式後的任何時間。參見編譯階段。執行階段主要在運行時期進行,但也可能在編譯時期進行,當執行require
、do
FILE
,或者執行eval
STRING
運算子時,或者當替換使用/ee
修飾符時。
Perl 實際執行您的程式碼時的時間,與之前它試圖弄清楚您說的話是否有任何意義的時間相對應,這就是編譯時期。
包含一個或多個變數在解析模式為正則表達式之前插入的模式,因此不能在編譯時期分析,但必須每次評估模式匹配運算子時重新分析。運行時期模式很有用但代價高昂。
一個被圍起來的區域,不應該影響其範圍以外的事物。您讓孩子們在沙盒中玩耍,而不是在馬路上奔跑。參見駱駝書第 20 章,“安全”。
當代碼期望一個表達式(由其周圍的代碼呼叫)返回單個值而不是值列表的情況。另請參見上下文和列表上下文。純量上下文有時對返回值施加額外的限制—請參見字符串上下文和數值上下文。有時我們在條件語句中談論布林上下文,但這不會施加額外的限制,因為任何純量值,無論是數值還是字符串,已經是真或假。
數字或帶引號的字符串—在您的程序文本中的實際值,而不是變量。
偶然是純量而不是列表的值。
以$前綴的變量,保存單個值。
您可以通過一個來查看變量的遠近。Perl有兩個可見性機制。它對區域變量進行動態作用域,這意味著區塊的其餘部分,以及區塊的其餘部分調用的任何子程序,可以看到區塊本地的變量。 Perl對my變量進行詞法作用域,這意味著區塊的其餘部分可以看到該變量,但區塊調用的其他子程序無法看到該變量。
特定文件或子程序調用保留一些臨時值的區域,包括任何詞法作用域變量。
一個文本文件,是一個旨在直接執行而不是在執行前編譯為另一種文件形式的程序。
此外,在Unicode的上下文中,它是一個用於特定語言或語言組的書寫系統,例如希臘語、孟加拉語或天譯文字。
一個不是黑客但只知道足夠運行預設腳本的駭客,一個貨運崇拜程式設計師。
一個古老的流編輯器,Perl 從中獲得了一些想法。
一種花式互鎖,防止多個線程或進程同時使用相同的資源。
一個字符或字符串,用於使兩個周圍的字符串不會混淆。split 函數在分隔符上工作。不要與定界符或終結符混淆。前一句中的“或”分隔了兩個選項。
將花式數據結構排序為線性順序,以便將其存儲為磁盤文件或數據庫中的字符串,或通過管道發送。也稱為 marshalling。
在網絡中,一個進程,它要麼廣告服務,要麼只是留在已知位置等待需要服務的客戶與其聯繫。
為了讓別人開心而為其做的事情,就像給他們一天(或一生)的時間。在某些機器上,知名服務由 getservent 函數列出。
與 setuid 相同,只是涉及放棄群組特權。
以程式以其擁有者的權限運行,而不是(通常情況下)以運行該程式的用戶的權限運行的程式。此外,描述了模式字(權限位)中控制該功能的位。該位必須由擁有者明確設置以啟用此功能,並且該程式必須小心編寫,不得放棄比應該放棄的更多權限。
兩個不同進程可以訪問的記憶體片段,這些進程通常不會看到彼此的記憶體。
愛爾蘭人整體的術語。在 Perl 文化中,是“銳”和“bang”的混成詞,意思是告訴系統找到解釋器的#!
序列。
一個命令行解釋器。這個程序會交互式地給你一個提示符,接受一個或多個輸入行,並執行你提到的程序,為每個程序提供正確的參數和輸入數據。Shell 還可以執行包含這些命令的腳本。在 Unix 下,典型的 shell 包括 Bourne shell(/bin/sh)、C shell(/bin/csh)和 Korn shell(/bin/ksh)。Perl 不是嚴格的 shell,因為它不是交互式的(儘管 Perl 程式可以是交互式的)。
評估表達式時發生的額外事件。現在它幾乎可以指任何事情。例如,評估簡單的賦值語句通常具有將值分配給變量的“副作用”(你可能一開始認為分配值是你的主要意圖!)同樣,將值分配給特殊變量 $|($AUTOFLUSH)會導致在當前選定的文件處理程序上的每個 write 或 print 之後強制刷新的副作用。
魔法中使用的字形。或者,對於 Perl,是變量名稱前面的符號,如 $、@ 和 %。
突如其來的事件;即由操作系統觸發的事件,可能在最不希望它發生時發生。
一個子程式,不滿足於以正常方式被呼叫,而是靜靜地等待著突如其來的事件才願意執行。在 Perl 中,突如其來的事件被稱為訊號,您可以使用內建的 kill
函式來發送它們。請參閱 Camel 第 25 章「特殊名稱」中的 %SIG
雜湊和第 15 章「進程間通訊」中的「訊號」部分。
您從母親那裡得到的特徵,如果她告訴您沒有父親的話。(另見繼承和多重繼承。)在電腦語言中,類別只能有一個直接的祖先或基底類別的觀念。Perl 不施加此類限制,但如果您願意,當然可以以此方式編寫 Perl 程式。
從清單、陣列或雜湊中選擇任意數量的元素。
用於多個進程之間網路通訊的端點,類似於電話或郵政信箱。插座最重要的是其網路地址(就像電話號碼一樣)。不同類型的插座具有不同類型的地址——有些看起來像檔案名稱,有些則不是。
請參閱符號引用。
您可以將東西放在頂部,稍後以放置它們的相反順序取下來的裝置。參見後進先出。
包含在官方 Perl 發行版中,如標準模組、標準工具或標準 Perl手冊頁面。
在 Perl 程式中,用於記錄不當評論的預設輸出串流,該評論不應出現在標準輸出中。在 Perl 程式中,由輸出文件處理器 STDERR 表示。您可以明確使用此串流,但 die 和 warn 內建函式會自動將訊息寫入標準錯誤串流(除非被捕獲或以其他方式攔截)。
程式的預設輸入串流,程式理想情況下不應關心數據來源。在 Perl 程式中,由文件處理器 STDIN 表示。
用於與作業系統進行緩衝輸入和輸出的標準 C 函式庫。標準 I/O 的“標準”與標準輸入和輸出的“標準”之間關係微乎其微。一般來說,Perl 依賴於操作系統提供的標準 I/O 實現,因此一台機器上的 Perl 程式的緩衝特性可能與另一台機器上的不完全匹配。通常這只影響效率,而不是語義。如果您的標準 I/O 套件正在進行區塊緩衝,並且您希望更頻繁地刷新緩衝區,只需將 $| 變數設置為真值即可。
包括在官方 perl 發行版中的所有內容。一些供應商版本的 perl 可能會更改其發行版,省略某些部分或包含額外內容。另請參閱雙存活。
程式的預設輸出串流,程式理想情況下不應關心數據的去向。在 Perl 程式中,由文件處理器 STDOUT 表示。
向計算機發出關於下一步該做什麼的指令,就像食譜中的一個步驟:“將果醬加入麵糊中並攪拌直至混合。”陳述與聲明不同,聲明不會告訴計算機做什麼,而只是告訴它學習某事。
在陳述後面放置的條件或循環,如果您明白我們的意思。
與其他事物相比變化緩慢。(不幸的是,與其他事物相比,一切都相對穩定,除了某些基本粒子,對它們我們不太確定。)在電腦中,事物應該快速變化,因此“靜態”具有貶義,表示稍微有些功能失調的變數、子程序或方法。在 Perl 文化中,這個詞被禮貌地避免使用。
如果你是 C 或 C++ 程式設計師,你可能正在尋找 Perl 的 state
關鍵字。
這並不存在。請參考 類別方法。
這並不存在。請參考 詞彙範疇。
Perl 中特殊的內部位置,用於保存你最後一次請求資訊的 檔案。
當其子進程之一終止時,返回給父 進程 的 值。此值被放置在特殊變數 $?
中。它的前八個 位元 是已終止進程的退出狀態,後八個位元則識別引發終止的訊號(如果有的話)。在 Unix 系統中,此狀態值與 wait(2) 返回的狀態字相同。請參閱 Camel 第 27 章 “函數” 中的 system
。
請參閱 標準錯誤。
請參閱 標準輸入。
請參閱 標準 I/O。
請參閱 標準輸出。
進出進程的資料流,以連續的位元組或字元序列形式出現,不會被分割成封包。這是一種 介面 ——底層的 實作 可能會將您的資料拆分為獨立的封包以進行傳遞,但這對您來說是隱藏的。
一系列字元,例如 “他說 !@#*&%@#*?!”。字串不一定要完全可列印。
將抽象物件產生成一個 字串 表示的過程。
C 語言中引入結構定義或名稱的關鍵字。
見 資料結構。
見 衍生類別。
正規表示式模式的組件。
程式中的一個具名或其他可存取的部分,可以從程式的其他地方調用,以完成程式的某些子目標。子程序通常通過其輸入參數實現不同但相關的功能。如果子程序返回有意義的值,則它也被稱為函數。
指示特定陣列元素在陣列中位置的值。
通過 s///
運算符更改字符串的部分。(我們避免使用此術語表示變量內插。)
字符串的一部分,從特定字符位置(偏移)開始,繼續一定數量的字符。
見基底類別。
操作系統將允許幾乎任何事情的人。通常是系統管理員或假裝是系統管理員的人。在Unix系統上,是根用戶。在Windows系統上,通常是管理員用戶。
“標量值”的縮寫。但在Perl解釋器中,每個引用都被視為從SV衍生的類別的成員,以一種面向對象的方式。Perl內的每個值都作為C語言的 SV*
指針傳遞。SV結構知道自己的“引用類型”,並且代碼足夠聰明(我們希望如此),不會嘗試在子程序上調用哈希函數。
您在命令行上提供的選項,用於影響程序運行方式,通常以減號開頭。這個詞也被用作對 switch語句 的暱稱。
多個命令行開關(例如,–a –b –c
)組合成一個開關(例如,–abc
)。任何帶有額外參數的開關必須是叢集中的最後一個開關。
一種程序技術,讓您評估一個表達式,然後根據表達式的值,對適當的代碼進行多路分支。也稱為“case 結構”,以類似的 Pascal 結構命名。Perl 中的大多數 switch 敘述拼寫為given
。請參閱《Camel》第 4 章“語句和聲明”中的“given
敘述”。
一個程序,讓您逐步執行您的程序,偶爾停止或打印出某些信息,以查看是否出現了任何問題,如果有,則是什麼。這裡的“符號”部分僅意味著您可以使用與您的程序編寫時相同的符號與調試器進行交流。
一個替代文件名,指向真實文件名,這個文件名又指向真實文件。每當操作系統嘗試解析包含符號連結的路徑名時,它只是替換新名稱並繼續解析。
一個變量,其值是另一個變量或子程序的名稱。通過對第一個變量進行解引用,您可以訪問第二個變量。在use strict "refs"
下,符號引用是非法的。
當一個 編譯器 記住符號時。像 Perl 這樣的程序必須以某種方式記住你使用過的所有 變量、文件處理器 和 子程序 的名稱。它通過將這些名稱放入符號表中來實現這一點,Perl 中使用 哈希表 來實現這一點。為每個 包 都有一個單獨的符號表,以便為每個包提供自己的 命名空間。
可以確定事件有序發生的編程方式;也就是說,事情是依次發生的,而不是同時發生的。
更容易寫的替代方法;一個捷徑。
源自希臘語 σύνταξις,意為“安排”。事物(特別是符號)如何與其他事物結合在一起。
程序的內部表示,其中低級 構造 懸掛在封閉它們的高級構造上。
直接調用 操作系統 的 函數。你使用的許多重要的子程序和函數並不是直接的系統調用,而是在系統調用層上建立的一層或多層。一般來說,Perl 程序員不需要擔心這個區別。然而,如果你確實知道哪些 Perl 函數是真正的系統調用,你就可以預測哪些會在失敗時設置 $!
($ERRNO
)變量。不幸的是,初學者常常混淆地將“系統調用”一詞用於當你調用 Perl 的 system
函數時所發生的事情,其實這涉及了許多系統調用。為了避免任何混淆,我們幾乎總是說“系統調用”指的是你可以通過 Perl 的 syscall
函數間接調用的東西,而絕不是指你可以通過 Perl 的 system
函數調用的東西。
Perl 進行的特殊帳務處理,用於跟蹤外部數據通過程序的流動並禁止它們在系統命令中的使用。
從用戶不潔淨的手中獲取的數據,因此對於一個安全的程序來說是不安全的。如果你運行一個 setuid(或 setgid)程序,或者使用 –T
選項,Perl 會進行污點檢查。
在使用–T
開關運行時,將所有外部數據標記為可疑並拒絕使用系統命令。請參閱駝駝第20章“安全”。
傳輸控制協議的簡稱。一種包裹在互聯網協議周圍的協議,使一個不可靠的封包傳輸機制在應用程序看來像是可靠的字節流。(通常如此。)
“終端”的簡稱,即語法樹的葉節點。在表達式中作為運算符的運算對象的事物。
標記另一個字符串結尾的字符或字符串。$/
變量包含終止readline
操作的字符串,chomp
從末尾刪除。不要與分隔符或分隔符混淆。本句句末的句號是終止符。
接受三個操作數的運算符。有時發音為三元。
主要包含可打印字符的字符串或文件。
類似於分叉進程,但沒有分叉的內在記憶體保護。線程比完整進程更輕量,因為進程可以在其中運行多個線程,除非採取措施保護線程彼此之間的記憶體空間。
神奇變量與其實現類之間的關聯。參見駝駝第27章“函數”和駝駝第14章“綁定變量”中的tie
函數。
用於大寫字母後跟小寫字母而不是更多大寫字母的情況。有時稱為句首大小寫或標題大小寫。英語不使用Unicode標題大小寫,但英語標題的大小寫規則比僅大寫每個單詞的第一個字符更為複雜。
There’s More Than One Way To Do It,Perl的座右銘。這意味著在上下文中解決編程問題可以有多種有效的方法。(這並不意味著更多的方式總是更好,或者所有可能的方法都同等可取——只是說不一定存在一個真正正確的方法。)
在編程語言中的一個形態素,具有語義重要性的最小文本單位。
將程式文本分解為後續由解析器進行分析的一系列標記的模組。
將程式文本分解為標記。 也稱為“lexing”,在這種情況下,您會得到“詞彙”而不是標記。
這個概念是,使用一套完整的簡單工具,這些工具可以良好配合使用,您幾乎可以構建任何想要的東西。 如果您正在組裝三輪車,這是可以的,但是如果您要建造一個defranishizing comboflux regurgalator,您真的需要自己的機械加工廠來製造特殊工具。 Perl有點像一個機械加工廠。
您正在處理的事情。 像while(<>)
、for
、foreach
和given
這樣的結構會通過將值賦給$_
(默認的主題變量)為您設置主題。
通過將源字符串的每個字符映射到結果字符串中的相應字符,將一個字符串表示轉換為另一個字符串。 不要與翻譯混淆:例如,希臘語πολύχρωμος音譯為polychromos,但翻譯為many-colored。 參見駱駝第5章“模式匹配”中的tr///
運算符。
導致運行處理器的事件。
一種古老的排版語言,Perl從中獲得其$%
變量的名稱,並且在駱駝書籍的製作中秘密使用。
任何不等於0或""
的純量值。
將文件中的現有內容清空,可以在打開文件進行寫入時自動進行,也可以通過truncate
函數明確進行。
將數據從一種類型轉換為另一種。 C允許這樣做。 Perl不需要也不想要。
C 和 C++ 語言中的一種型別定義。
使用以*
開頭的單個識別符號。例如,*name
代表$name
、@name
、%name
、&name
或僅name
中的任何一個或全部。如何使用它取決於它是解釋為全部還是其中的一個。參見「Typeglobs and Filehandles」中的駱駝書第 2 章「Bits and Pieces」。
用於在互聯網上傳送數據報的典型方式,即用戶數據報協議。
在創建文件或目錄時強制關閉的那些權限位的掩碼,以建立一個通常拒絕訪問的政策。參見umask
函數。
只有一個操作數的運算符,如!
或chdir
。一元運算符通常是前置運算符;即它們在操作數之前。++
和––
運算符可以是前置或後置的。(它們的位置確實會改變它們的含義。)
由世界上所有主要字符集組成的字符集,或多或少。參見http://www.unicode.org。
一種非常龐大且不斷演變的語言,具有幾種替代且大多不相容的語法,任何人都可以以任何方式定義任何事物,通常也確實如此。這種語言的使用者認為學習起來很容易,因為它可以輕易地扭曲成自己想要的樣子,但是方言差異使得部落間的交流幾乎不可能,旅行者通常被降低到類似皮钦语的子集。要普遍理解,Unix shell 程序員必須花費多年的時間研究這門藝術。許多人已經放棄了這項學科,現在通過一種類似世界語的語言 Perl 來進行交流。
在古代,Unix 也用來指代貝爾實驗室的一些人為了利用當時閒置的 PDP-7 電腦所寫的程式碼。
在 Unicode 中,不僅僅是一般類別為大寫字母的字符,而是任何具有大寫屬性的字符,包括一些字母數字和符號。不要與標題大小寫混淆。
實際的數據,與您需要訪問該值的所有變量、引用、鍵、索引、運算符等形成對比。
一個被命名的存儲位置,可以容納程序視為合適的各種類型的值。
將純量或數組變量插入字符串中。
數學術語,指一個包含純量值的列表。
提供某種外觀而不是實際的東西,例如:虛擬內存不是真正的內存。(參見也內存。)與“虛擬”相反的是“透明”,意思是提供某物的實際性而不是外觀,例如:Perl 透明地處理變長的 UTF-8 字符編碼。
用一個後面跟著一系列十進制整數的點表示的“版本”或“向量”字符串,例如:v1.20.300.4000
。每個數字都轉換為具有指定序數值的字符。(當至少有三個整數時,v
是可選的。)
一則印到 STDERR
流中的訊息,表示某事可能有問題,但不值得大驚小怪。請參閱駝駝第27章「函數」中的 warn
,以及駝駝第28章「Pragma 模組」中的 warnings
pragma。
一個表達式,當其值變化時,在 Perl 調試器中觸發斷點。
一個不會正常計算的參照。當所有對資料的正常參照消失時,資料也會消失。這對於通常永遠不會消失的循環參照很有用。
一個將游標移動但不在屏幕上顯示任何內容的 字元。通常指任何以下內容之一:空格、定位符、換行符、回車符或換頁符。在 Unicode 中,匹配 Unicode 認為的許多其他空白字元,包括 ɴ-ʙʀ 。
在正常的「電腦術語」中,指最有效處理的資料片段,通常是32位元左右,加減幾個2的冪次方。在 Perl 文化中,更常指代包含底線的字母數字 識別碼,或由空白或字串邊界限定的一串非空白 字元。
您當前的 目錄,由作業系統解釋相對路徑名。作業系統知道您的當前目錄,因為您使用了 chdir
,或者您一開始就處於父 進程在您出生時的位置。
一個運行其他程式或子程序的程式或子程序,以更好地適應您的需求修改其部分輸入或輸出。
所見即所得。通常用於屏幕上顯示的內容與最終呈現的內容相符,如 Perl 的 format
声明。也用來表示與魔術的相反,因為一切都按照顯示的方式工作,就像 open
的三個參數形式一樣。
Yet Another Compiler Compiler。一個解析器生成器,如果沒有它,Perl 可能就不會存在。請參閱 Perl 源代碼分發中的文件 perly.y。
一個已經死亡(退出)但其父進程尚未通過調用 wait
或 waitpid
收到其終止的正確通知的進程。如果你使用 fork
,在子進程退出時必須清理子進程;否則,進程表將填滿,系統管理員將對你不滿。
基於 Tom Christiansen、brian d foy、Larry Wall 和 Jon Orwant 的《Programming Perl》第四版詞彙表。版權所有 (c) 2000、1996、1991、2012 O'Reilly Media, Inc. 本文檔可以按照 Perl 本身的相同條款進行分發。