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.

sub import { $Bestiary::zoo = "menagerie"; }这 个 import 函 数 的 存 在 抑 制 了 对 Exporter 的 import 函 数 的 继 承 。 如 果 你 希 望Bestiary 的 import 函 数 在 设 置 了 $Bestiary::zoo 之 后 的 的 性 质 和 Exporter 的import 函 数 一 样 , 那 么 你 应 该 象 下 面 那 样 定 义 它 :sub import { $Bestiary::zoo = "menagerie";Bestiary->export_to_level(1,@_); }这 样 就 把 符 号 符 号 从 当 前 包 输 出 到 “ 上 面 ” 一 层 的 包 里 。 也 就 是 说 , 输 出 到 使 用 Bestiary 的程 序 或 者 模 块 里 。11.2.1.2 版 本 检 查如 果 你 的 模 块 定 义 了 一 个 $VERSION 变 量 , 使 用 你 的 模 块 的 程 序 可 以 识 别 该 模 块 足 够 新 。比 如 :use Bestiary 3.14;use Bestiary v1.0.4;# Bestiary 必 须 是 版 本 3.14 或 者 更 新# Bestiary 必 须 是 版 本 1.0.4 或 者 更 新这 些 东 西 都 转 换 成 对 Bestiary->require_version 的 调 用 , 然 后 你 的 模 块 就 继 承 了 它 们 。11.2.1.3 管 理 未 知 符 号有 时 候 , 你 可 能 希 望 避 免 某 些 符 号 的 输 出 。 通 常 这 样 的 情 况 出 现 在 你 的 模 块 里 有 一 些 函 数 或者 约 束 对 某 些 系 统 而 言 没 有 什 么 用 的 时 候 。 你 可 以 通 过 把 它 们 放 在 @EXPORT_FAIL 数 组里 面 避 免 把 这 些 符 号 输 出 。如 果 一 个 程 序 想 输 入 这 些 符 号 中 的 任 何 一 个 , Exporter 在 生 成 一 个 错 误 之 前 给 模 块 一 个处 理 这 种 情 况 的 机 会 。 它 通 过 带 着 一 个 失 败 符 号 列 表 调 用 export_fail 的 方 法 来 实 现 这 个目 的 , 你 可 以 这 样 定 义 export_fail( 假 设 你 的 模 块 使 用 Carp 模 块 ):sub export_fail {my $class = shift;carp "Sorry, these symblos are unavailable: @_";return @_;}282

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

Saved successfully!

Ooh no, something went wrong!