13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

这 里 ,$fido 的 真 实 名 字 是 $Camel::fido(&fetch 的 真 实 名 字 是 &Camel::fetch)。这 就 意 味 着 如 果 别 人 在 其 他 模 块 中 使 用 :package Dog;$fido = &fetch();<strong>Perl</strong> 不 会 被 迷 惑 , 因 为 这 里 $fido 的 真 实 名 字 是 $Dog::fido, 而 不 是 $Camel::fido。计 算 机 科 学 家 称 之 为 一 个 package 建 立 了 一 个 名 字 空 间 。 你 可 以 建 立 很 多 的 名 字 空 间 ,但 是 在 同 一 时 间 你 只 能 在 一 个 名 字 空 间 中 , 这 样 你 就 可 以 假 装 其 他 名 字 空 间 不 存 在 。 这 就 是名 字 空 间 如 何 为 你 简 化 实 际 工 作 的 方 法 。 简 化 是 基 于 假 设 的 ( 当 然 , 这 是 否 会 过 于 简 化 , 这正 是 我 们 写 这 一 章 的 原 因 )保 持 动 词 的 简 洁 和 上 面 讨 论 保 持 名 词 的 简 洁 同 样 重 要 。 在 Camel 和 Dog 名 字 空 间 中 ,&Camel::fetch 不 会 与 &Dog::fetch 混 淆 , 但 包 的 真 正 好 处 在 于 它 们 能 够 将 你 的 动 词 分类 , 这 样 你 就 可 以 在 其 他 包 中 使 用 它 们 。 当 我 们 使 用 :$fido = new Camel "Amelia";我 们 实 际 上 调 用 了 Camel 包 中 的 &new, 它 的 全 名 是 &Camel::new。 并 且 当 我 们 使 用 :$fido->saddle();的 时 候 , 我 们 调 用 了 &Camel::saddle 过 程 , 因 为 $fido 记 得 它 是 指 向 一 个 Camel 对象 的 。 这 就 是 一 个 面 向 对 象 程 序 的 工 作 方 法 。当 你 说 package Camel 的 时 候 , 你 实 际 上 是 开 始 了 一 个 新 包 。 但 是 有 时 候 你 只 是 想 借 用其 他 已 有 包 的 名 词 和 动 词 。<strong>Perl</strong> 中 你 可 以 用 use 声 明 来 实 现 ,use 声 明 不 仅 可 以 让 你 使用 其 他 包 的 动 词 , 同 时 也 检 查 磁 盘 上 载 入 的 模 块 名 称 。 实 际 上 , 你 必 须 先 使 用 :use Camel;然 后 才 能 使 用 :$fido = new Camel "Amelia";不 然 的 话 ,<strong>Perl</strong> 将 不 知 道 Camel 是 什 么 东 西 。有 趣 的 是 , 你 自 己 并 不 需 要 真 正 知 道 Camel 是 什 么 , 你 可 以 让 另 外 一 个 人 去 写 Camel 模块 。 当 然 最 好 是 已 经 有 人 为 你 编 写 了 Camel 模 块 。 可 能 <strong>Perl</strong> 最 强 大 的 东 西 并 不 在 <strong>Perl</strong>本 身 , 而 在 于 CPAN(Comprehensive <strong>Perl</strong> Archive Network),CPAN 包 含 无 数 的 用 于实 现 不 同 任 务 模 块 。 你 不 需 要 知 道 如 何 实 现 这 些 任 务 , 只 需 要 下 载 这 些 模 块 , 并 简 单 用 下 面的 方 法 来 使 用 它 们 :20

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

Saved successfully!

Ooh no, something went wrong!