13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

怎 么 乱 都 行 , 只 要 你 保 持 你 的 外 部 界 面 对 其 他 公 民 来 说 是 适 度 文 明 的 就 可 以 了 。 在 <strong>Perl</strong> 里 ,一 个 名 字 空 间 叫 一 个 包 。 包 提 供 了 基 本 的 制 作 块 , 在 它 上 面 构 造 更 高 级 的 概 念 , 比 如 模 块 和类 等 。和 “ 家 ” 的 说 法 相 似 ,“ 包 ” 的 说 法 也 有 一 些 模 糊 。 包 独 立 于 文 件 。 你 可 以 在 一 个 文 件 里 有 许 多包 , 或 者 是 一 个 包 跨 越 多 个 文 件 , 就 好 象 你 的 家 可 以 是 在 一 座 大 楼 里 面 的 小 小 的 顶 楼 ( 如 果你 是 一 个 穷 困 潦 倒 的 艺 术 家 ), 或 者 你 的 家 也 可 以 由 好 多 建 筑 构 成 ( 比 如 你 的 名 字 叫 伊 丽 沙白 女 王 )。 但 家 的 常 见 大 小 就 是 一 座 建 筑 , 而 包 通 常 也 是 一 个 文 件 大 ,<strong>Perl</strong> 给 那 些 想 把 一个 包 放 到 一 个 文 件 里 的 人 们 提 供 了 一 些 特 殊 的 帮 助 , 条 件 只 是 你 愿 意 给 文 件 和 包 相 同 的 名 字并 且 使 用 一 个 .pm 的 扩 展 名 ,pm 是 “perl module” 的 缩 写 。 模 块 (module) 是 <strong>Perl</strong>里 重 复 使 用 的 最 基 本 的 模 块 。 实 际 上 , 你 使 用 模 块 的 方 法 是 use 命 令 , 它 是 一 个 编 译 器 指示 命 令 , 可 以 控 制 从 一 个 模 块 里 输 入 子 过 程 和 变 量 。 到 目 前 为 止 你 看 到 的 每 一 个 use 的 例子 都 是 模 块 复 用 的 例 子 。如 果 其 他 人 认 为 你 的 模 块 有 用 , 那 么 你 应 该 把 它 们 放 到 CPAN。<strong>Perl</strong> 的 繁 荣 是 和 程 序 员 愿意 和 整 个 社 区 分 享 他 们 劳 动 的 果 实 分 不 开 的 。 自 然 ,CPAN 也 是 你 可 以 找 到 那 些 其 他 人 已经 非 常 仔 细 地 上 载 上 去 给 别 人 用 的 模 块 的 地 方 。 参 阅 第 二 十 二 章 , CPAN, 以 及www.cpan.org 获 取 详 细 信 息 。过 去 25 年 左 右 的 时 间 里 , 设 计 计 算 机 语 言 的 趋 势 是 强 调 某 种 偏 执 。 你 必 须 编 制 每 一 个 模块 , 就 好 象 它 是 一 个 围 城 的 阶 段 一 样 。 显 然 有 些 封 建 领 地 式 的 文 化 可 以 使 用 这 样 的 方 法 , 但并 不 是 所 有 文 化 都 喜 欢 这 样 。 比 如 , 在 <strong>Perl</strong> 文 化 里 , 人 们 让 你 离 它 们 的 房 子 远 一 点 是 因 为他 们 没 有 邀 请 你 , 而 不 是 因 为 窗 户 上 有 窗 栅 。( 注 : 不 过 , 如 果 需 要 , <strong>Perl</strong> 提 供 了 一 些 窗栅 。 参 阅 第 二 十 三 章 , 安 全 , 里 的 “ 处 理 不 安 全 数 据 ”。)这 本 书 不 是 讲 面 向 对 象 的 方 法 论 的 , 并 且 我 们 在 这 里 也 不 想 把 你 推 到 面 向 对 象 的 狂 热 中 去 ,就 算 你 想 进 去 我 们 的 态 度 也 这 样 。 关 于 这 方 面 的 东 西 已 经 有 大 量 书 籍 了 。<strong>Perl</strong> 对 面 向 对 象设 计 的 原 则 和 <strong>Perl</strong> 对 其 他 东 西 的 原 则 是 一 样 的 : 在 面 向 对 象 的 设 计 方 法 有 意 义 的 地 方 就 用它 , 而 在 没 有 意 义 的 地 方 就 绕 开 它 。 你 的 选 择 。在 OO 的 说 法 中 , 每 个 对 象 都 属 于 一 个 叫 做 类 的 组 。 在 <strong>Perl</strong> 里 , 类 和 包 以 及 模 块 之 间 的关 系 是 如 此 地 密 切 , 以 至 于 许 多 新 手 经 常 认 为 它 们 是 可 以 互 换 的 。 典 型 的 类 是 用 一 个 定 义 了与 该 类 同 名 的 包 名 字 的 模 块 实 现 的 。 我 们 将 在 随 后 的 几 章 里 解 释 这 些 东 西 。当 你 use 一 个 模 块 的 时 候 , 你 是 从 软 件 复 用 中 直 接 受 益 。 如 果 你 用 了 类 , 那 么 如 果 一 个 类通 过 继 承 使 用 了 另 外 一 个 类 , 那 么 你 是 间 接 地 从 软 件 复 用 中 受 益 。 而 且 用 了 类 , 你 就 获 得 了更 多 的 一 些 东 西 : 一 个 通 往 另 外 一 个 名 字 空 间 的 干 净 的 接 口 。 在 类 里 面 , 所 有 东 西 都 是 间 接地 访 问 的 , 把 这 个 类 和 外 部 的 世 界 隔 离 开 。265

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!