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.

@envrefs = \($ENV{HOME}, $ENV{TERM} );@envrefs = ( \$ENV{HOME}, \$ENV{TERM} );# 反 斜 杠 处 理 一 个 列 表# 一 个 两 个 引 用 的 列 表因 为 函 数 可 以 返 回 列 表 , 所 以 你 可 以 给 它 们 加 上 反 斜 杠 。 如 果 你 有 超 过 一 个 的 函 数 需 要 调 用 ,那 么 首 先 把 每 个 函 数 的 返 回 值 代 换 到 一 个 大 的 列 表 中 , 然 后 在 给 整 个 列 表 加 上 反 斜 杠 :@reflist = \fx();@reflist = map { \$_ } fx();# 一 样 的 东 西@reflist = \( fx(), fy(), fz() );@reflist = ( \fx(), \fy(), fz() );@reflist = map { \$_ } fx(), fy(), fz();# 一 样 的 东 西# 一 样 的 东 西反 斜 杠 操 作 符 总 是 给 它 的 操 作 数 提 供 一 个 列 表 环 境 , 因 此 那 些 函 数 都 是 在 列 表 环 境 中 调 用 。如 果 反 斜 杠 本 身 是 处 于 标 量 环 境 , 那 么 你 最 终 会 得 到 一 个 指 向 该 函 数 返 回 的 列 表 中 的 最 后 一个 数 值 的 引 用 :@reflist = \localtime();@lastref = \localtime();# 引 用 九 个 时 间 元 素 中 的 每 一 个# 引 用 的 是 它 是 否 为 夏 时 制从 这 个 方 面 来 看 , 反 斜 杠 的 行 为 类 似 命 名 的 <strong>Perl</strong> 列 表 操 作 符 , 比 如 print,reverse 和sort, 它 们 总 是 在 它 们 的 右 边 提 供 一 个 列 表 环 境 , 而 不 管 它 们 左 边 是 什 么 东 西 。 和 命 名 的 列表 操 作 符 一 样 , 使 用 明 确 的 scalar 强 迫 跟 在 后 面 的 进 入 标 量 环 境 :$dateref = \scalar localtime(); # \"Thu Apr 19 22:02:18 2001"你 可 以 使 用 ref 操 作 符 来 判 断 一 个 引 用 指 向 的 是 什 么 东 西 。 把 ref 想 象 成 一 个 “typeof”( 类 型 为 ) 操 作 符 , 如 果 它 的 参 数 是 一 个 引 用 那 么 返 回 真 , 否 则 返 回 假 。 返 回 的 数 值 取 决 于所 引 用 的 东 西 的 类 型 。 内 建 的 类 型 包 括 SCALAR,ARRAY,HASH,CODE,GLOB,REF,LVALUE,IO,IO::Handle, 和 Regexp。 在 下 面 , 我 们 用 它 检 查 子 过 程 参 数 :sub sum {my $arrayref = shift;warn "Not an array reference" if ref($arrayref) ne "ARRAY";return eval join("+", @$arrayref);225

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

Saved successfully!

Ooh no, something went wrong!