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.

BEGIN 既 不 会 影 响 子 过 程 的 定 义 , 也 不 会 影 响 子 过 程 里 使 用 的 任 意 词 法 的 一 致 性 . 这 里 它仅 仅 保 证 在 子 程 序 被 调 用 之 前 变 量 就 被 初 始 化 . 想 了 解 定 义 私 有 变 量 和 全 局 变 量 更 多 的 内容 , 请 分 别 参 考 29 章 " 函 数 " 的 my 和 our 的 说 明 ,BEGIN 和 INIT 在 第 十 八 章 " 编 译 "中 解 释 .3.0 传 入 引 用如 果 你 想 在 一 个 函 数 中 传 入 或 传 出 不 止 一 个 的 数 组 或 散 列 结 构 , 同 时 你 希 望 它 们 保 持 它 们 的一 致 性 , 那 么 你 就 需 要 使 用 一 个 更 明 确 的 传 递 引 用 的 机 制 . 在 你 使 用 传 递 引 用 之 前 , 你 需 要懂 得 第 八 章 里 有 关 引 用 的 细 节 . 本 小 节 不 着 重 讲 述 引 用 的 内 容 .这 里 有 几 个 简 单 的 例 子 , 首 先 , 让 我 们 定 义 一 个 函 数 , 这 个 函 数 使 用 数 组 的 引 用 作 为 参 数 . 当这 个 数 组 非 常 大 时 , 作 为 一 个 引 用 传 递 要 比 传 入 一 长 列 值 要 快 得 多 :$total = sum (\@a );sub sum {my ($aref) = @_;my ($total) = 0;foreach (@$aref) { $total += $_ }return $total;}下 面 让 我 们 将 几 个 数 组 传 入 一 个 函 数 , 并 且 使 用 使 用 pop 得 到 每 个 数 组 的 最 后 一 个 元 素 ,并 返 回 每 个 数 组 最 后 一 个 元 素 组 成 的 一 个 新 的 数 组 :@tailings = popmany (\@a, \@b, \@c, \@d );sub popmany {my @retlist = ();for my $aref (@_) {push @retlist, pop @$aref;187

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

Saved successfully!

Ooh no, something went wrong!