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.

参 数 提 供 一 个 数 字 环 境 , 字 符 串 环 境 或 布 尔 环 境 .( 稍 后 我 们 会 讲 到 与 标 量 环 境 相 对 的 数 组环 境 )<strong>Perl</strong> 会 根 据 环 境 自 动 将 数 据 转 换 成 正 确 的 形 式 . 例 如 :$camels = '123';print $camels +1, "\n";$camels 最 初 的 值 是 字 符 串 , 但 是 它 被 转 换 成 数 字 然 后 加 一 , 最 后 有 被 转 换 回 字 符 串 , 打印 出 124."\n" 表 示 的 新 行 同 样 也 在 字 符 串 环 境 中 , 但 是 由 于 它 本 来 就 是 一 个 字 符 串 , 因此 就 没 有 必 要 做 转 换 了 . 但 是 要 注 意 我 们 在 这 里 必 须 使 用 双 引 号 , 如 果 使 用 单 引 号 '\n',这 就 表 示 这 是 由 反 斜 扛 和 n 两 个 字 符 组 成 的 字 符 串 , 而 不 表 示 一 个 新 行 .所 以 , 从 某 种 意 义 上 来 说 , 使 用 单 引 号 和 双 引 号 也 是 另 外 一 种 提 供 不 同 环 境 方 法 . 不 同 引 号里 面 的 内 容 根 据 所 用 的 引 号 有 不 同 的 解 释 .( 稍 后 , 我 们 会 看 到 一 些 和 引 号 类 似 的 操 作 符 ,但 是 这 些 操 作 符 以 一 些 特 殊 的 方 法 使 用 字 符 串 , 例 如 模 式 匹 配 , 替 换 . 这 些 都 象 双 引 号 字 符串 一 样 工 作 . 双 引 号 环 境 在 <strong>Perl</strong> 中 称 为 代 换 环 境 . 并 且 很 多 其 他 的 操 作 符 也 提 供 代 换 环境 .)同 样 的 , 一 个 引 用 在 " 解 引 用 " 环 境 表 现 为 一 个 引 用 , 否 则 就 象 一 个 普 通 标 量 一 样 工 作 , 比 如 ,我 们 可 以 说 :$fido= new Camel "Amelia";if (not $fido) { die "dead camel"; }$fido->saddle();在 这 里 , 我 们 首 先 创 建 了 一 个 指 向 Camel 对 象 的 引 用 , 并 将 它 赋 给 变 量 $fido, 在 第 二行 中 , 我 们 将 $fido 当 成 一 个 布 尔 量 来 判 断 它 是 否 为 真 , 如 果 它 不 为 真 , 程 序 将 抛 出 一 个例 外 . 在 这 个 例 子 中 , 这 将 意 味 着 new Camel 构 造 函 数 创 建 Camel 对 象 失 败 . 最 后 一行 , 我 们 将 $fido 作 为 一 个 引 用 , 并 调 用 Camel 对 象 的 saddle() 方 法 . 今 后 我 们 还 将讲 述 更 多 关 于 环 境 的 内 容 . 现 在 你 只 需 记 住 环 境 在 <strong>Perl</strong> 中 是 十 分 重 要 的 ,<strong>Perl</strong> 将 根 据 环境 来 判 断 你 想 要 什 么 , 而 不 用 象 其 他 编 程 语 言 一 样 必 须 明 确 地 告 诉 它 .1.2.3 复 数 变 量一 些 变 量 类 型 保 存 多 个 逻 辑 上 联 系 在 一 起 的 值 .<strong>Perl</strong> 有 两 种 类 型 的 多 值 变 量 : 数 组 和 散 列 ,在 很 多 方 面 , 它 们 和 标 量 很 相 似 , 比 如 它 们 也 会 在 需 要 时 自 动 存 在 . 但 是 , 当 你 给 它 们 赋 值时 , 它 们 就 和 标 量 就 不 一 样 了 . 它 们 提 供 一 个 列 表 环 境 而 不 是 标 量 环 境 .14

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

Saved successfully!

Ooh no, something went wrong!