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 程 序 安 全 , 因 爲 數 據 流 跟 蹤 機 制 可 以 堵 上 很 多 愚 蠢 的 安 全 漏 洞 如 果 你 遇 到 了 一 般 適 於 sed 或 awk 或 sh 處 理 的 問 題 , 但 是 問 題 超 出 了 工 具 的 能 力 , 或 者 需 要 更 快 的 處 理 , 你 又 不 想 用 C 來 寫 一 大 堆 倒 塌 的 程 序 , 那 麼 使 用 Perl 吧 。 另 外 , 還 有 很 多 將 sed 和 awk 腳 本 轉 換 爲 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.org>, with the help of oodles of other folks. 如 果 你 使 用 Perl 的 成 功 案 例 對 想 在 項 目 中 應 用 Perl 的 人 有 用 , 或 者 如 果 你 只 是 想 想 表 達 你 對 Larry 和 Perl 開 發 者 的 感 激 之 情 , 請 寫 信 到 <perl-thanks [AT] perl.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.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.com>
[中 文 版 最 新 更 新 ]
2003.11.29
《 中 國 linux論 壇 man手 冊 翻 譯 計 劃 》 :
http://cmpp.linuxforum.net 跋 本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh