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.

比 如 , 如 果 你 把 下 面 结 构 放 在 一 个 Person.pm 文 件 里 :package Person;use Class::Struct;struct Person => {name => '$',race => '$',# 创 建 一 个 "Person" 的 定 义# name 域 是 一 个 标 量# race 域 也 是 一 个 标 量aliases => '@',# 但 aliases 域 是 一 个 数 组 引 用};1;然 后 你 就 可 以 用 下 面 的 方 法 使 用 这 个 模 块 :use Person;my $mage = Person->new();$mage->name("Gandalf");$mage->race("Istar");$mage->aliases( ["Mithrandir","Olorin", "Incanus"] );Class::Struct 模 块 为 你 创 建 上 面 的 所 有 四 种 方 法 。 因 为 它 遵 守 子 类 安 全 原 则 , 总 是 在 域名 字 前 面 前 缀 类 名 字 , 所 以 它 还 允 许 一 个 继 承 类 可 以 拥 有 它 自 己 独 立 的 与 基 类 同 名 的 域 , 而又 不 用 担 心 会 发 生 冲 突 。 这 就 意 味 着 你 在 用 于 这 个 实 例 变 量 的 时 候 , 必 须 用"Person::name" 而 不 能 用 "name" 当 作 散 列 键 字 来 访 问 散 列 表 。在 结 构 声 明 里 的 数 据 域 可 以 不 是 <strong>Perl</strong> 的 基 本 类 型 。 它 们 也 可 以 声 明 其 他 的 类 , 但 是 和struct 一 起 创 建 的 类 并 非 运 行 得 最 好 , 因 为 那 些 对 类 的 特 性 做 出 假 设 的 函 数 并 不 是 对 所 有的 类 都 能 够 明 察 秋 毫 。 比 如 , 对 于 合 适 的 类 而 言 , 会 调 用 new 方 法 来 初 始 化 它 们 , 但 是 很多 类 有 其 他 名 字 的 构 造 器 。参 阅 第 三 十 二 章 , 标 准 模 块 , 以 及 它 的 联 机 文 档 里 关 于 Class::Struct 的 描 述 。 许 多 标 准模 块 使 用 Class::Struct 来 实 现 它 们 的 类 , 包 括 User::pwent 和 Net::hostent。 阅 读它 们 的 代 码 会 很 有 收 获 。317

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

Saved successfully!

Ooh no, something went wrong!