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.

my $self = shift;if (@_ + $#{$self->{DATA}} > $self->{BOUND} ) {confess "Attempt to push too many elements";}push @{$self->{DATA}}, @_;}SELF->UNSHIFT(LIST)这 个 方 法 预 先 把 LIST 的 元 素 放 到 数 组 中 。 对 于 我 们 的 BoundedArray ?子 过 程 类 似 PUSH。类 而 言 , 这 个SELF->POPPOP 方 法 从 数 组 中 删 除 最 后 一 个 元 素 并 返 回 之 。 对 于 boundedArray, 它 只 有 一 行 :subPOP { my $self = shift; pop @{$self->{DATA}}}SELF->SHIFTSHIFT 方 法 删 除 数 组 的 第 一 个 元 素 并 返 回 之 。 对 于 boundedArray, 它 类 似 POP。SELF->SPLICE(OFFSET, LENGTH, LIST)这 个 方 法 让 你 接 合 SELF 数 组 。 为 了 模 拟 <strong>Perl</strong> 内 建 的 splice,OFFSET 应 该 是 可 选 项并 且 缺 省 为 零 , 而 负 值 是 从 数 组 后 面 向 前 数 。LENGTH 也 应 该 是 可 选 项 , 缺 省 为 数 组 剩下 的 长 度 。LIST 可 以 为 空 。 如 果 正 确 模 拟 内 建 函 数 , 那 么 它 应 该 返 回 原 数 组 从 OFFSET开 始 的 LENGTH 长 个 元 素 ( 要 被 LIST 代 替 的 元 素 列 表 )。因 为 接 合 是 有 些 复 杂 的 操 作 , 我 们 就 不 定 义 它 了 ; 我 们 只 需 要 使 用 来 自 Tie::Array 模 块的 SPLICE 子 过 程 , 这 个 子 过 程 是 继 承 Tie::Array 时 免 费 时 免 费 拿 到 的 。 这 样 我 们 用其 他 BoundedArray ? 方 法 定 义 了 SPLICE, 因 此 范 围 检 查 仍 然 进 行 。上 面 就 是 BoundedArray ? 类 的 全 部 。 它 只 是 对 数 组 的 语 义 做 了 一 点 点 封 装 。 不 过 我 们 可以 干 得 更 好 , 而 且 用 的 空 间 更 少 。14.2.2 大 家 方 便365

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

Saved successfully!

Ooh no, something went wrong!