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.

或 者 类 型 团 ( 用 小 写 字 母 的 ) 的 引 用 由 子 过 程 使 用 . 如 果 你 总 是 希 望 这 样 的 参 数 转 换 成 一 个类 型 团 的 引 用 , 可 以 使 用 Symbol::qualify_to_ref, 象 下 面 这 样 :use Symblo 'qualify_to_ref';sub foo (*) {my $fh = qualify_to_ref(shift, caller);...}注 意 上 面 表 中 的 最 后 三 个 例 子 会 被 分 析 器 特 殊 对 待 ,mygrep 被 分 析 成 一 个 真 的 列 表 操 作符 ,myrand 被 分 析 成 一 个 真 的 单 目 操 作 符 就 象 rand 一 样 , 同 样 mytime 被 分 析 成 没有 参 数 , 就 象 time 一 样 .也 就 是 说 , 如 果 你 使 用 下 面 的 表 达 式 :mytime +2;你 将 会 得 到 mytime()+2, 而 不 是 mytime(2), 这 就 是 在 没 有 函 数 原 型 时 和 使 用 了 单 目函 数 原 型 时 分 析 的 得 到 的 不 同 结 果 .mygrep 例 子 同 样 显 示 了 当 & 是 第 一 个 参 数 的 时 候 是 如 果 处 理 的 . 通 常 一 个 & 函 数 原 型要 求 一 个 象 \&foo 或 sub{} 这 样 参 数 . 当 它 是 第 一 个 参 数 时 , 你 可 以 在 你 的 匿 名 子 过 程中 省 略 掉 sub, 只 在 " 非 直 接 对 象 " 的 位 置 上 传 送 一 个 简 单 的 程 序 块 ( 不 带 冒 号 ). 所 以 & 函数 原 型 的 一 个 重 要 功 能 就 是 你 可 以 用 它 生 成 一 个 新 语 法 , 只 要 & 是 在 初 始 位 置 :sub try (&$) {my ($try, $catch) = @_;eval { &$try };if ($@) {local $_ = $@;&$catch;191

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

Saved successfully!

Ooh no, something went wrong!