sourCEntral - mobile manpages

pdf

PERL

NAME

perl - Practical Extraction and Report Language (實用摘錄和彙報語言)

總覽 SYNOPSIS

perl

-sTuU ] [ -hv ] [ -V[:configvar] ]

-cw ] [ -d[:debugger] ] [ -D[number/list] ]
-pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal] ]
-Idir ] [ -m[-]module ] [ -M[-]’module...’ ]
-P ] [ -S ] [ -x[dir] ]
-i[extension] ] [ -e ’command’ ] [ -- ] [ programfile ] [ argument ]...

如果你是 Perl 新手,還是從 perlintro 看起吧,那是為初學者準備的簡單介紹,提供了一些背景知識,幫助你瀏覽 Perl 其餘的大量文件

為方便閱讀,Perl 手冊分成了很多章

概述 Overview

perl Perl 概述 (本小節)
perlintro Perl 介紹 (為新手準備)
perltoc Perl 目錄 (所有內容列表)

教程 Tutorials

perlreftut Perl 引用
perldsc Perl 資料結構
perllol Perl 高階資料結構

perlrequick Perl 正則表示式快速入門
perlretut Perl 正則表示式

perlboot Perl OO 面向物件 入門
perltoot Perl OO 面向物件 教程 (第一部分)
perltooc Perl OO 面向物件 教程 (第二部分)
perlbot Perl OO 面向物件 竅門和例子

perlstyle Perl 程式風格

perlcheat Perl 投機取巧
perltrap Perl 大意者的陷阱
perldebtut Perl 除錯

perlfaq Perl 常見問題
perlfaq1 有關 Perl 的一般問題
perlfaq2 獲取/學習 Perl
perlfaq3 程式設計工具
perlfaq4 資料操縱
perlfaq5 檔案與檔案格式
perlfaq6 正則表示式
perlfaq7 Perl 語言本身的問題
perlfaq8 與作業系統互動
perlfaq9 網路

參考手冊 Reference Manual

perlsyn Perl 語法
perldata Perl 資料結構
perlop Perl 運算子及優先順序
perlsub Perl 定義函式
perlfunc Perl 內建函式
perlopentut Perl open() 教程
perlpacktut Perl pack() 和 unpack() 教程
perlpod Perl POD 文件
perlpodspec Perl POD 文件格式規約
perlrun Perl 執行選項
perldiag Perl 診斷資訊
perllexwarn Perl 警告 控制警告
perldebug Perl 除錯
perlvar Perl 預定義變數
perlre Perl 正則表示式 其餘的部分
perlreref Perl 正則表示式快速索引
perlref Perl 參考 其餘的部分
perlform Perl 格式
perlobj Perl 物件
perltie Perl 用簡單變數隱藏物件
perldbmfilter Perl DBM 層

perlipc Perl 程序間通訊
perlfork Perl fork() 相關資訊
perlnumber Perl 數字的語義

perlthrtut Perl 執行緒
perlothrtut 舊版 Perl 執行緒

perlport Perl 移植嚮導
perllocale Perl 語言環境支援
perluniintro Perl Unicode 介紹
perlunicode Perl Unicode 支援
perlebcdic 在 EBCDIC 平臺上執行 Perl

perlsec Perl 安全性

perlmod Perl modules: 它如何工作
perlmodlib Perl modules: 如何寫和用它們
perlmodstyle Perl modules: 如何寫好它
perlmodinstall Perl modules: 如何從 CPAN 安裝它們
perlnewmod Perl modules: 準備釋放出新模組

perlutil Perl 附帶的工具

perlcompile Perl 編譯套件介紹

perlfilter Perl 原始碼過濾

內部以及 C 介面 Internals and C Language Interface

perlembed 在 C/C++ 應用中內建 Perl 的獨特方法
perldebguts Perl 除錯要點和技巧
perlxstut Perl XS
perlxs Perl XS 應用程式程式設計介面
perlclib 標準 C 庫的內部實現
perlguts 為高階開發者準備的 Perl 內部函式
perlcall 從 C 轉換為 Perl 呼叫

perlapi Perl API 列表 (自動生成)
perlintern Perl 內部函式 (自動生成)
perliol Perl 以“層”方式實現 IO 用到的 C API
perlapio Perl 內部 IO 抽象介面

perlhack 修改 Perl

雜項 Miscellaneous

perlbook Perl 書籍資訊
perltodo Perl 的未來

perldoc 檢視 Pod 格式的 Perl 文件

perlhist Perl 歷史記錄
perldelta Perl 上一版本以來的變動
perl58delta Perl 5.8.0 帶來的變化
perl573delta Perl changes in version 5.7.3
perl572delta Perl changes in version 5.7.2
perl571delta Perl changes in version 5.7.1
perl570delta Perl changes in version 5.7.0
perl561delta Perl changes in version 5.6.1
perl56delta Perl changes in version 5.6
perl5005delta Perl changes in version 5.005
perl5004delta Perl changes in version 5.004

perlartistic Perl Artistic License
perlgpl GNU General Public License

語言相關 Language-Specific

perlcn Perl 簡體中文支援 (原文是 EUC-CN 編碼)
perljp Perl 日本語支援 (原文是 EUC-JP 編碼)
perlko Perl 朝鮮語支援 (原文是 EUC-KR 編碼)
perltw Perl 繁體中文支援 (原文是 Big5 編碼)

平臺相關 Platform-Specific

perlaix Perl notes for AIX
perlamiga Perl notes for AmigaOS
perlapollo Perl notes for Apollo DomainOS
perlbeos Perl notes for BeOS
perlbs2000 Perl notes for POSIX-BC BS2000
perlce Perl notes for WinCE
perlcygwin Perl notes for Cygwin
perldgux Perl notes for DG/UX
perldos Perl notes for DOS
perlepoc Perl notes for EPOC
perlfreebsd Perl notes for FreeBSD
perlhpux Perl notes for HP-UX
perlhurd Perl notes for Hurd
perlirix Perl notes for Irix
perlmachten Perl notes for Power MachTen
perlmacos Perl notes for Mac OS (Classic)
perlmacosx Perl notes for Mac OS X
perlmint Perl notes for MiNT
perlmpeix Perl notes for MPE/iX
perlnetware Perl notes for NetWare
perlos2 Perl notes for OS/2
perlos390 Perl notes for OS/390
perlos400 Perl notes for OS/400
perlplan9 Perl notes for Plan 9
perlqnx Perl notes for QNX
perlsolaris Perl notes for Solaris
perltru64 Perl notes for Tru64
perluts Perl notes for UTS
perlvmesa Perl notes for VM/ESA
perlvms Perl notes for VMS
perlvos Perl notes for Stratus VOS
perlwin32 Perl notes for Windows

預設情況下,上面列出的手冊頁安裝在 /usr/local/man/ 目錄

還有大量有關 Perl 模組的文件。預設的 perl 配置會將它們安裝到 /usr/local/lib/perl5/man 目錄,(或者 Perl 庫目錄中的 man 子目錄). 它們中的一部分是隨 Perl 釋出的標準文件, 另外你還可以從中找到第三方的文件

你可以用 man(1) 程式來檢視 Perl 的文件,只要在配置檔案中加入合適的路徑, 或者將路徑設定在 MANPATH 環境變數中。要找出 perl 所有手冊頁的路徑,只要執行

perl -V:man.dir

如果路徑有共同點,例如 /usr/local/man/man1/usr/local/man/man3, 你只要將共同點 (/usr/local/man) 加入到 man(1) 的配置檔案中,或是 MANPATH 環境變數中。如果它們沒有共同點,就必須全部新增

如果這樣做沒有效果,你也可以用附帶的 perldoc 指令碼來檢視模組資訊。也可以找一個 man 的替代程式

如果你的程式出了問題,又不知道該到哪裡去找幫助,就先試一試 -w 選項。它會精確地報告錯誤發生在哪一行

描述 DESCRIPTION

Perl 是一種特別為掃描複雜文字檔案最佳化過的語言, 從中提取有用的資訊,然後據此生成結果。 它也是系統管理任務中很好用的語言。它的目標是實用 (易用,高效,完整) 而不是 精緻 (小,優雅,功能有限)

Perl 結合了 (在作者看來) C, sed, awk, 還有 sh 的優點,熟悉它們的人學起 Perl 毫無困難。 (語言學家還會從中發現一些 csh, Pascal, 甚至 BASIC-PLUS 中的元素。) 表示式語法與 C 表示式語法緊密對應。與大多數 Unix 工具不同,Perl 不限制 你的資料的大小 -- 只要你有足夠的記憶體,Perl 可以把你的整個檔案當作單一的字串來享受。 遞迴的深度是無限的。 雜湊 (有時又叫做“關聯陣列” "associative arrays" ) 會按需生長,以避免效能下降。 Perl 使用精緻的模式匹配技術來保證快速掃描大量資料。 儘管為掃描文字而最佳化,Perl 仍然可以處理二進位制資料,也可以像使用雜湊一樣使用 dbm 檔案。 設定了 UID 的 Perl 指令碼要比 C 程式安全,因為資料流跟蹤機制可以堵上很多愚蠢的安全漏洞

如果你遇到了一般適於 sedawksh 處理的問題,但是問題超出了工具的能力, 或者需要更快的處理,你又不想用 C 來寫一大堆倒塌的程式,那麼使用 Perl 吧。 另外,還有很多將 sedawk 指令碼轉換為 Perl 指令碼的翻譯器

但是稍等,還有更多...

自 1993 年開始 (參見 perlhist),Perl 5 進行了幾乎完全的重寫, 提供了以下的功能:

模組性和可複用性

詳述在 perlmod, perlmodlib, 和 perlmodinstall 中

可內建可擴充套件

詳述在 perlembed, perlxstut, perlxs, perlcall, perlguts, 和 xsubpp 中

建立功能強大的資料型別 (同時包括多種 DBM 實現)

詳述在 perltie 和 AnyDBM_File 中

函式可過載,自動載入,原型化

詳述在 perlsub 中

複雜的資料結構巢狀還有匿名函式

詳述在 perlreftut, perlref, perldsc, 和 perllol 中

面向物件程式設計

詳述在 perlobj, perlboot, perltoot, perltooc, 和 perlbot 中

支援輕量級程序 (執行緒)

詳述在 perlthrtut 和 threads 中

支援 Unicode,國際化和本地化

詳述在 perluniintro, perllocale 和 Locale::Maketext 中

變數作用域

詳述在 perlsub 中

正則表示式強化

詳述在 perlre 中,perlop 中有更多例子

強化的除錯工具和互動的 Perl 環境,支援整合的編輯器

詳述在 perldebtut, perldebug 和 perldebguts 中

POSIX 1003.1 相容的庫

詳述在 POSIX

Okay, 這些已經是絕對的絕對夠用了

可用性 AVAILABILITY

Perl 在大部分作業系統上都可用,包含幾乎所有類 Unix 的平臺。參見 perlport 中的 "Supported Platforms" 段來檢視平臺列表

環境 ENVIRONMENT

參見 perlrun

作者 AUTHOR

Larry Wall <larry AT wall DOT org>, with the help of oodles of other folks.

如果你使用 Perl 的成功案例對想在專案中應用 Perl 的人有用, 或者如果你只是想想表達你對 Larry 和 Perl 開發者的感激之情,請寫信到 <perl-thanks AT perl DOT org>

檔案 FILES

"@INC" locations of perl libraries

參見 SEE ALSO

a2p awk 到 perl 翻譯器
s2p sed 到 perl 翻譯器

http://www.perl.com/ Perl 官方主頁
http://www.cpan.org/ the Comprehensive Perl Archive (Perl 檔案中心)
http://www.perl.org/ Perl Mongers (Perl 使用者組)

診斷 DIAGNOSTICS

"use warnings" 編譯指示 (pragma) (還有 -w 選項) 會產生 一些有用的診斷資訊

參見 perldiag 來檢視所有 Perl 診斷資訊的含義。 "use diagnostics" 編譯指示會自動將 Perl 簡短的警告和錯誤訊息 轉換為長格式

編譯錯誤將給出行號,還有要執行的下一個詞或詞的型別。 (在用 -e 選項傳給 Perl 的指令碼中,每個 -e 視為一行。)

設定了 UID 的指令碼有額外的約束,會產生格式化的錯誤資訊,類似 "Insecure dependency"。參見 perlsec

我們說過你一定要用 -w 選項了嗎?

BUGS

-w 選項不是必要的

Perl 依賴於你的機器中操作的定義,類似於型別轉換, atof(), 還有使用 sprintf() 來做浮點輸出等操作

如果你的 stdio 在讀寫一個特殊流時需要一個 seek 或是 eof,Perl 也會需要它們。 (這種情況不會在 sysread()syswrite() 中發生。)

所有內建資料型別都沒有大小限制 (除了記憶體大小之外),但是還是有一些限制: 變數名不得長於 251 個字元。 診斷資訊顯示的行號以短整型數儲存,因此行號最大值是 65535 (更大的行號一般會從頭開始)

可以將錯誤報告 (一定要包含完整的配置資訊,使用 perl 原始碼樹中的 myconfig 程式,或者用 "perl -V" 命令得到) 寄給 perlbug AT perl DOT org 。 如果你已經成功編譯 perl, utils/ 目錄中的 perlbug 指令碼可以用來郵寄錯誤報告

Perl 真正意義是 Pathologically Eclectic Rubbish Lister, 但是 不要告訴任何人我說過它

注意 NOTES

Perl 的信條是 "There’s more than one way to do it." 至於探索有多少種辦法,就是讀者自己的事了

程式設計師應有的三種美德是 Laziness, Impatience, 還有 Hubris. 原因呢,請參見駱駝書

[中文版維護人]

bbbush <bbbush AT 163 DOT com>

[中文版最新更新]

2003.11.29

《中國linux論壇man手冊翻譯計劃》:

http://cmpp.linuxforum.net

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

pdf