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.

象 这 样 的 明 确 的 解 引 用 通 常 都 是 好 事 ; 你 决 不 能 把 你 的 引 用 和 指 示 物 混 淆 , 除 非 你 想 混 淆 它们 。 下 面 可 能 就 是 你 想 混 淆 的 情 况 之 一 。 如 果 你 把 你 的 类 设 计 成 使 用 重 载 , 你 可 以 装 做 看 不到 引 用 而 只 是 说 :print $object;$new_object = $subject + $object;当 你 重 载 某 个 <strong>Perl</strong> 的 内 建 操 作 符 的 时 候 , 你 实 际 上 定 义 了 把 它 应 用 于 某 特 定 类 型 的 对 象 时的 特 性 。 有 很 多 <strong>Perl</strong> 的 模 块 利 用 了 重 载 , 比 如 Math::BigInt, 它 让 你 可 以 创 建Math::BigInt 对 象 , 这 些 对 象 的 性 质 和 普 通 整 数 一 样 , 但 是 没 有 尺 寸 限 制 。 你 可 以 用 + 把它 们 相 加 , 用 / 把 它 们 相 除 , 用 比 较 它 们 , 以 及 用 print 打 印 它 们 。请 注 意 重 载 和 自 动 装 载 (autoload) 是 不 一 样 的 , 自 动 装 载 是 根 据 需 要 装 载 一 个 缺 失 的 函数 或 方 法 。 重 载 和 覆 盖 (overriding) 也 是 不 一 样 的 , 覆 盖 是 一 个 函 数 或 方 法 覆 盖 了 另 外一 个 。 重 载 什 么 东 西 也 不 隐 藏 ; 它 给 一 个 操 作 添 加 了 新 含 义 , 否 则 在 区 区 引 用 上 进 行 该 操 作就 是 无 聊 的 举 动 。13.1 overload 用 法use overload 用 法 实 现 操 作 符 重 载 。 你 给 它 提 供 一 个 操 作 符 和 对 应 的 性 质 的 键 字 / 数 值 列表 :package MyClass;use overload '+' => \&myadd, # 代 码 引 用'

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

Saved successfully!

Ooh no, something went wrong!