- 論壇徽章:
- 1
|
本文由鄙人翻譯完成,說起來翻譯完成了都已經一年多了,可是一直沒發,
一來是因為沒有人幫我校對,二來是我一直想攢多了一起發,可惜時至今日,
再要是不發就快要捂爛了。
說實話,這篇文檔沒什么技術含量 
最新版本可以從這里獲。≒OD 格式):
[urlhttp://svn.perlchina.org/trunk/POD2-CN/lib/POD2/CN/perl.pod[/url]
- 標題
- perl - Practical Extraction and Report Language
- 語法
- perl [ -sTuU ] [ -hv ] [ -V[:*configvar*] ]
- [ -cw ] [ -d[:*debugger*] ] [ -D[*number/list*] ]
- [ -pna ] [ -F*pattern* ] [ -l[*octal*] ] [ -0[*octal*] ]
- [ -I*dir* ] [ -m[-]*module* ] [ -M[-]*'module...'* ] [ -P ] [ -S ]
- [ -x[*dir*] ] [ -i[*extension*] ]
- [ -e *'command'* ] [ -- ] [ *programfile* ] [ *argument* ]...
- 如果你是一個 Perl 的初學者,那么你最好先閱讀一下 perlintro,
- 那是一個為初學者專門準備的簡單介紹,為你講解一些 Perl 的基礎知識,
- 并且幫助你遨游于剩余的大量 Perl 文檔。
- 為了便于閱讀,Perl 手冊被分成了一下幾個部分:
- 概述
- perl Perl 概述(本文檔)
- perlintro 為初學者準備的 Perl 簡介
- perltoc Perl 文檔目錄
- activeperl ActivePerl 概述
- 教程
- 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 常見問題(FAQ)
- perlfaq1 普通問題
- perlfaq2 開始使用和學習 Perl 時碰到的問題
- perlfaq3 編程工具
- perlfaq4 數據操作
- perlfaq5 文件和格式
- perlfaq6 正則表達式
- perlfaq7 Perl 語言問題
- perlfaq8 系統交互
- perlfaq9 網絡編程
- 參考手冊
- 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 考慮將 Perl 運行在 EBCDIC 編碼的平臺上
- perlsec Perl 安全
- perlmod Perl 模塊編程: 入門教程
- perlmodlib Perl 模塊編程: 如何書寫并使用一個新模塊
- perlmodstyle Perl 模塊編程: 編寫模塊的規范
- perlmodinstall Perl 模塊編程: 如何安裝一個 CPAN 上發布的模塊
- perlnewmod Perl 模塊編程: 準備發布自己的模塊
- perlutil Perl 打包、發布工具
- perlcompile Perl 編譯器套件介紹
- perlfilter Perl source filters
- Perl 內部實現和 C 語言接口
- perlembed 嵌入 Perl 到你的 C/C++ 程序中去
- perldebguts Perl debugging guts and tips
- perlxstut Perl XS 教程
- perlxs Perl XS 編程接口(API)
- perlclib C 標準庫的 Perl 替代
- perlguts 使用 Perl 內部函數擴展 Perl
- perlcall 從 C 中調用 Perl 時的約定
- perlapi Perl API 一覽
- perlintern Perl 內部函數
- perliol C API for Perl's implementation of IO in Layers
- perlapio Perl 內部 IO 抽象接口
- perlhack Perl 黑客指南
- 雜項
- perlbook Perl 書籍訊息
- perltodo Perl 未來展望
- perldoc Look up Perl documentation in Pod format
- perlhist Perl 修改記錄
- perldelta 相對于前一個版本的修改
- perl586delta 5.8.6 版所做的修改
- perl585delta 5.8.5 版所做的修改
- perl584delta 5.8.5 版所做的修改
- perl583delta 5.8.3 版所做的修改
- perl582delta 5.8.2 版所做的修改
- perl581delta 5.8.1 版所做的修改
- perl58delta 5.8.0 版所做的修改
- perl573delta 5.7.3 版所做的修改
- perl572delta 5.7.2 版所做的修改
- perl571delta 5.7.1 版所做的修改
- perl570delta 5.7.0 版所做的修改
- perl561delta 5.6.1 版所做的修改
- perl56delta 5.6 版所做的修改
- perl5005delta 5.005 版所做的修改
- perl5004delta 5.004 版所做的修改
- activeperl-release ActivePerl 發布日志
- activeperl-changes ActivePerl 修訂歷史
- perlartistic Perl Artistic License
- perlgpl GNU GPL 許可協議內容
- 語言相關
- perlcn Perl 簡體中文簡介(采用 EUC-CN 編碼)
- perljp Perl 日文簡介(采用 EUC-JP 編碼)
- perlko Perl 朝鮮文簡介(采用 EUC-KR 編碼)
- perltw Perl 繁體中文簡介(采用 Big5 編碼)
- 平臺相關
- perlaix AIX 平臺說明
- perlamiga AmigaOS 平臺說明
- perlapollo Apollo DomainOS 平臺說明
- perlbeos BeOS 平臺說明
- perlbs2000 POSIX-BC BS2000 平臺說明
- perlce WinCE 平臺說明
- perlcygwin Cygwin 平臺說明
- perldgux DG/UX 平臺說明
- perldos DOS 平臺說明
- perlepoc EPOC 平臺說明
- perlfreebsd FreeBSD 平臺說明
- perlhpux HP-UX 平臺說明
- perlhurd Hurd 平臺說明
- perlirix Irix 平臺說明
- perlmachten Power MachTen 平臺說明
- perlmacos Mac OS (Classic) 平臺說明
- perlmacosx Mac OS X 平臺說明
- perlmint MiNT 平臺說明
- perlmpeix MPE/iX 平臺說明
- perlnetware NetWare 平臺說明
- perlopenbsd OpenBSD 平臺說明
- perlos2 OS/2 平臺說明
- perlos390 OS/390 平臺說明
- perlos400 OS/400 平臺說明
- perlplan9 Plan 9 平臺說明
- perlqnx QNX 平臺說明
- perlsolaris Solaris 平臺說明
- perltru64 Tru64 平臺說明
- perluts UTS 平臺說明
- perlvmesa VM/ESA 平臺說明
- perlvms VMS 平臺說明
- perlvos Stratus VOS 平臺說明
- perlwin32 Windows 平臺說明
- 如果你使用的是類 UNIX 系統,那么上述手冊頁默認情況下安裝在
- /usr/local/man/ 目錄。
- 除此之外,還有大量的 Perl 模塊的文檔。這些附加文檔默認被放置在
- /usr/local/lib/perl5/man 目錄或者是 Perl 庫目錄下的 man 子目錄
- 這里邊有一部分附加文檔是 Perl 的標準發布包中自帶的,其余則是自行安裝的
- 第三方模塊的文檔。
- 譯者注:如果你使用的是 windows 平臺下的 ActiveState Perl,并且安裝在了
- C:\Perl,那么上述手冊頁的 html 版本都在 C:\Perl\html 目錄,pod 版本則在
- C:\Perl\lib\pod 目錄。如果你是用 .msi 安裝包形式安裝的話,安裝包就會在
- [開始] -> [程序] -> [ActiveState ActivePerl 5.x] -> [Documentation] 這
- 位置生成一個快捷方式,你點擊它就可以瀏覽所有的 ActivePerl 文檔。
- 在類 UNIX 環境下,通過正確設置相應的系統文件,或者修改 MANPATH
- 環境變量, 你可以使用 man(1) 程序來打開手冊頁。
- 用以下命令可以知道你的 Perl 手冊頁被安裝到了什么地方:
- perl -V:man.dir
- 如果返回結果中包含有一個常用的部分,比如是 /usr/local/man/man1 和
- /usr/local/man/man3, 那么你只需要添加 (/usr/local/man) 到你的 man(1)
- 的配置文件或者 MANPATH 環境變量中。
- 如果返回結果不包括這些常用目錄,那你只好將每一行都添加到 man(1) 的配置
- 文件或者 MANPATH 環境變量了。
- 此外,你還可以用 Perl 自帶的 perldoc 腳本來瀏覽 Perl 手冊頁或者模塊
- 文檔。(譯者注:在 windows 平臺下,因為沒有 man 命令,所以要想在命令行下
- 瀏覽 Perl 文檔,那么這是唯一的方式。)
- 如果你的程序不能正確工作而你又不知道該去看哪個手冊頁,那么請試一下 -w
- 命令行選項,它通常會給你一個相對準確的信息以指出到底是哪兒出了麻煩。
- 說明
- Perl 可以輕易的實現掃描任意文本文件、從中提取有用的信息、然后按照要求的
- 格式打印出報表。Perl 也是一種優秀的系統管理工具。
- Perl
- 語言被設計成是“實用的”(易于使用、高效、功能豐富),而不是“華麗的”
- (簡單、優美、精致)!鹤g者注:譯文無法體現原文的意思,原文為 "The
- language is intended to be practical (easy to use, efficient, complete)
- rather than beautiful (tiny, elegant, minimal)."』
- 據作者來看,Perl 結合了 C、sed、awk、sh 等一些工具的許多優秀特性。
- 這樣熟悉以上工具的人可以只花費較少的代價就可以使用 Perl。
- (語言歷史學家們 可能還記得 csh, Pascal, 甚至還有 BASIC-PLUS.)
- 以下是 Perl 的一些特點: 1, Perl 的表達式語法和 C 的表達式語法非常相似。
- 2, 和大多數 UNIX 工具不同,Perl
- 本身不會限制你的數據大小,只要你擁有足夠的 內存。 3, Perl
- 可以一口氣讀取整個文件的內容并且保存到一個普通的字符串變量中。 4,
- 遞歸嵌套層數沒有限制。 5,
- 使用“哈希表(hash)”(有些資料也稱作“關聯數組(associative arrays)”) 來
- 表示表格。在必要的時候哈希表會自動增長額外的空間以免妨礙到性能。 6,
- 使用“模式匹配”來快速掃描大量數據。 7, Perl
- 也可以和二進制數據打交道,通過某些技術,可以使一個 DBM 文件象一個
- 哈希表一樣操作。 8, 出于 setuid 方式運行的 Perl 腳本要比同樣的 C
- 程序安全,Perl 擁有一個貫穿
- 數據流的污染檢測系統,這可以防止大多數令人生厭的安全漏洞。
- 如果你碰到了一個任務需要用 sed 、 awk 或者 sh 來完成,結果卻發現
- 無法做到或者是想運行起來更快一些,并且你又不想寫 C 程序來處理,那么 Perl
- 就 是你最好的選擇。Perl 允許你將現有的 sed 腳本或者 awk 腳本轉換為 Perl
- 腳本。
- 早在 1993 年(參見 perlhist)的時候, Perl 5 幾乎被完全重寫了一次,經歷了這
- 次版本更新以后,Perl 增加了一下幾個重要特性:
- * 模塊化和可重用的編程思想,以及無數的模塊。
- 在 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。
- * 增強了調試器和交互式環境,可以集成外部編輯器。
- 在 perldebtut, perldebug 中 perldebguts 介紹。
- * POSIX 1003.1 兼容庫
- 參見 POSIX。
- 好了,有了以上這些宣傳,我想*肯定*已經足夠了。
- 可用性
- 在大多數操作系統上 Perl 都是可用的。實際上所有類 UNIX 平臺都是可用的。
- 詳情參見 "Supported Platforms" "Supported Platforms" in perlport,
- 那里有一個清單。
- 運行環境
- 參見 perlrun.
- 作者
- Larry Wall <larry@wall.org>, 以及其他許多普通人
- 如果你認為你的 Perl 成功案例能夠幫助那些需要在他們的項目中使用 Perl
- 的人, 或者你想簡單地表達一下你對于 Larry 以及其他 Perl
- 開發人員的謝意,那么請寫信 給 perl-thanks@perl.org。
- 文件
- "@INC" 定位 Perl 模塊搜索路徑
- 參見
- a2p awk 腳本到 perl 腳本的翻譯器
- s2p sed 腳本到 perl 腳本的翻譯器
- http://www.perl.org/ Perl 主頁
- http://www.perl.com/ Perl 文章(O'Reilly 維護)
- http://www.cpan.org/ CPAN: 完整的 Perl 檔案網絡
- http://www.pm.org/ Perl Mongers
- 診斷
- 使用 "use warnings" 語句(或者 -w 命令行選項)可以得到很多有用的診斷
- 信息。
- 查看 perldiag 可以得到所有的 Perl 診斷信息的解釋。使用 "use diagnostics"
- 語句可以自動地將錯誤信息轉換成更加詳細的形式。
- 編譯時產生的錯誤信息可以告訴你錯誤發生的行號,以及具體出錯的位置。
- (譯者注:因為 Perl 總是在錯誤發生之后才會發現錯誤,因此實際的錯誤位置
- 往往要比提示的靠前一些)
- 如果 Perl 腳本是通過命令行參數 -e 傳遞過去的,那么每一個 -e 參數
- 將被當作一行來計算行號。
- Setuid 腳本可以添加約束,從而產生類似于“Insecure dependency”
- (不安全的依賴) 之類的消息。參見 perlsec。
- 我們是不是應該提倡在每個程序中都使用 -w 開關呢?
- BUGS
- -w 命令行選項不是強制的。
- Perl 的有些操作是和你的機器相關的,比如 type casting(類型轉換)、
- atof() 操作、還有使用 sprintf() 進行浮點數的輸出,等等。
- 如果你的標準輸入輸出庫需要在每次讀或者寫操作之后移動文件指針,那么 Perl
- 中會 同樣如此,但是 sysread() 和 syswrite() 函數中不會這樣。
- 盡管沒有一種內建數據類型的尺寸會受到除了物理內存大小之外的其它任何限制,
- 但 是仍然有一些東西在制約著你:變量名的長度不能超過 251
- 個字母;另外,診斷時顯示 出來的行號在 Perl
- 內部是使用短整型存儲的,因此最大不能超過 65535(超過這個數
- 之后將發生環繞)。
- 你可以將你發現的 bug 匯報到
- perlbug@perl.org。不過最好附上一份完整的配置信 息,perl 源代碼樹中的
- myconfig 可以幫你做這件事,或者用 "perl -V" 也行。如果 你成功地編譯了
- Perl,那么你可以在 utils/ 目錄下找到 perlbug 腳本,它可 以幫助你郵寄一份
- bug 報表。
- Perl
- 事實上是一個“夭折的垃圾列表器”,但是千萬不要告訴任何人我這么說過。^_^
- 注意事項
- Perl 的格言是“條條大路通羅馬”(There's more than one way to do
- it.),具 體有多少作為練習留給讀者去猜測好了。
- 程序員的三種主要美德是:懶惰、急躁和傲慢。至于為什么這么說請參考駱駝書。
- TRANSLATORS
- 王興華 "flw" <flw@cpan.org>
復制代碼
[ 本帖最后由 flw 于 2006-6-9 15:30 編輯 ] |
|