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.

SELF->FIRSTKEY当 用 户 开 始 遍 历 散 列 , 比 如 说 用 一 个 keys, 或 者 values, 或 者 一 个 each 调 用 的 时 候需 要 这 个 方 法 。 我 们 通 过 在 标 量 环 境 中 调 用 keys, 重 置 其 (keys 的 ) 内 部 状 态 以 确 保后 面 retrun 语 句 里 的 each 将 拿 到 第 一 个 键 字 。sub FIRSTKEY {carp &whowasi if $DEBUG;my $self = shift;my $temp = keys %{$self->{CONTENTS}};return scalar each %{$self->{CONTENTS}};}SELF->NEXTKEY(PREVKEY)这 个 方 法 是 keys,values 或 者 each 函 数 的 叙 述 器 。PREVKEY 是 上 次 访 问 的 键 字 ,<strong>Perl</strong> 知 道 该 提 供 什 么 。 如 果 NEXTKEY 方 法 需 要 知 道 它 的 前 面 的 状 态 来 计 算 下 一 个 状 态时 这 个 变 量 很 有 用 。就 我 们 的 例 子 , 我 们 正 在 使 用 一 个 真 正 的 散 列 来 代 表 捆 绑 了 的 散 列 的 数 据 , 不 同 的 只 是 这个 散 列 保 存 在 散 列 的 CONTENTS 数 据 域 而 不 是 在 散 列 本 身 。 因 此 我 们 只 需 要 依 赖 <strong>Perl</strong>的 each 叙 述 器 就 行 了 :sub NEXTKEY {carp &whowasi if $DEBUG;my $self = shift;return scalar each %{ $self->{CONTENTS}}}SELF->DESTORY当 你 准 备 删 除 这 个 捆 绑 的 散 列 对 象 的 时 候 触 发 这 个 方 法 。 你 实 际 上 并 不 需 要 这 个 东 西 , 除非 是 用 做 调 试 和 额 外 的 清 理 。 下 面 是 一 个 非 常 简 单 的 版 本 :375

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

Saved successfully!

Ooh no, something went wrong!