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.

方 法 调 用 中 也 不 起 作 用 . 这 是 因 为 被 调 用 的 实 际 函 数 不 是 在 编 译 的 时 候 决 定 的 , 而 是 依 赖 于它 的 继 承 , 而 继 承 在 <strong>Perl</strong> 中 是 动 态 判 断 的 .因 为 本 节 的 重 点 主 要 是 让 你 学 会 定 义 象 内 建 函 数 一 样 工 作 的 子 过 程 , 下 面 使 一 些 函 数 原 型 ,你 可 以 用 来 模 仿 对 应 的 内 建 函 数 :声 明 为sub mylink ($$)调 用mylink $old, $newsub myreverse (@) myreverse $a, $b, $csub myjoin ($@) myjoin ":", $a, $b, $csub mypop (\@)sub mysplice(\@$$@)sub mykeys (\%)sub mypipe (**)sub myindex ($$;$)mypop @arraymysplice @array, @array, 0, @pushmemykeys %($hashref)mypipe READHANDLE, WRITEHANDLEmyindex &getstring, "substr"myindex &getstring, "substr", $startsub mysyswrite (*$;$$) mysyswrite OUTF, $bufmysyswrite OUTF, $buf, length($buf)-$off, $offsub myopen (*;$@)myopen HANDLEmyopen HANDLE, $namemyopen HANDLE, "-|", @cmdsub mygrep (&@) mygrep { /foo/ } $a, $b, $csub myrand ($) myrand 42sub mytime ()mytime任 何 带 有 反 斜 扛 的 原 型 字 符 ( 在 上 表 左 列 中 的 圆 括 弧 里 ) 代 表 一 个 实 际 的 参 数 ( 右 列 中 有 示 例 )必 须 以 以 这 个 字 符 开 头 . 例 如 keys 函 数 的 第 一 个 参 数 必 须 以 % 开 始 , 同 样 mykeys 的第 一 个 参 数 也 必 须 以 % 开 头 .分 号 将 命 令 性 参 数 和 可 选 参 数 分 开 .( 在 @ 或 % 前 是 多 余 的 , 因 为 列 表 本 身 就 可 以 是 空的 ) . 非 反 斜 扛 函 数 原 型 字 符 有 特 殊 的 含 义 . 任 何 不 带 反 斜 扛 的 @ 或 % 会 将 实 际 参 数 所有 剩 下 的 参 数 都 吃 光 并 强 制 进 入 列 表 环 境 .( 等 同 于 语 法 描 述 中 的 LIST).$ 代 表 的 参 数 强迫 进 入 标 量 环 境 .& 要 求 一 个 命 名 或 匿 名 子 过 程 的 引 用 .函 数 原 型 中 的 * 允 许 子 过 程 在 该 位 置 接 受 任 何 参 数 , 就 像 内 建 的 文 件 句 柄 那 样 : 可 以 是 一个 名 字 , 一 个 常 量 , 标 量 表 达 式 , 类 型 团 或 者 类 型 团 的 引 用 . 值 将 可 以 当 成 一 个 简 单 的 标 量190

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

Saved successfully!

Ooh no, something went wrong!