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.

*dick = \$richard;这 样 就 令 $richard 和 $dick 成 为 同 样 的 变 量 , 但 是 @richard 和 @dick 则 剩 下 来 是独 立 的 数 组 。 很 高 明 , 是 吗 ?这 也 是 Exporter 在 从 一 个 包 向 另 外 一 个 包 输 入 符 号 的 时 候 采 用 的 方 法 。 比 如 :*SomePack::dick = \&OtherPack::richard;从 包 OtherPack ? 输 入 &richard 函 数 到 SomePack ? , 让 它 可 以 当 作 &dick 函 数 用 。( Exporter 模 块 在 下 一 章 描 述 。) 如 果 你 用 一 个 local 放 在 赋 值 前 面 , 那 么 , 该 别 名 将只 持 续 到 当 前 动 态 范 围 结 束 。这 种 机 制 可 以 用 于 从 一 个 子 过 程 中 检 索 一 个 引 用 , 令 该 引 用 可 以 用 做 一 个 合 适 的 数 据 类 型 :*units = populate();# 把 \%newhash 赋 予 类 型 团print $units{kg}; # 打 印 70; 而 不 用 解 引 用 !sub populate {my %newhash = (km => 10, kg => 70);return \%newhash;}类 似 , 您 还 可 以 把 一 个 引 用 传 递 到 一 个 引 用 传 递 到 一 个 子 过 程 里 并 且 不 加 解 引 用 地 使 用 它 :%units = (miles => 6, stones => 11);fillerup( \%units );# 传 递 进 一 个 引 用print $units{quarts}; # 打 印 4sub fillerup {local *hashsym = shift;# 把 \%units 赋 予 该 类 型 团$hashsym{quarts} = 4; # 影 响 \%units; 不 需 要 解 引 用 !}270

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

Saved successfully!

Ooh no, something went wrong!