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.

对 于 方 法 2 和 3, <strong>Perl</strong> 从 文 件 开 头 开 始 分 析 —— 除 非 你 声 明 了 -x 开 关 , 那 样 它会 寻 找 第 一 个 以 #! 开 头 并 且 包 含 "perl" 的 行 , 然 后 从 那 里 开 始 分 析 。 这 个 开 关对 于 在 一 个 更 大 的 消 息 里 运 行 一 段 嵌 入 的 脚 本 很 有 用 。 如 果 是 这 样 , 你 可 以 用__END__ 记 号 指 明 脚 本 的 结 尾 。不 管 你 是 否 使 用 了 -x, 分 析 #! 行 的 时 候 总 是 要 检 查 是 否 有 开 关 。 这 样 , 如 果 你 所 在的 平 台 只 允 许 在 #! 行 里 有 一 个 参 数 , 或 者 更 惨 , 就 根 本 不 把 #! 行 当 作 一 个 特 殊 的行 , 你 仍 然 能 够 获 得 一 致 的 开 关 特 性 , 而 不 用 管 是 如 何 调 用 <strong>Perl</strong> 的 , 即 使 你 是 用-x 来 寻 找 脚 本 的 开 头 。警 告 : 因 为 老 版 本 的 Unix 不 声 不 响 地 把 内 核 对 #! 行 分 析 时 超 过 32 个 字 符 的 部 分截 去 , 最 后 可 能 是 有 些 开 关 原 封 不 动 地 传 给 你 的 程 序 而 其 他 的 参 数 就 没 了 ; 如 果 你不 小 心 , 你 甚 至 有 可 能 收 到 一 个 "-" 而 没 有 它 的 字 母 。 你 可 能 会 想 确 保 所 有 你 的 开 关要 么 在 32 字 符 之 前 , 要 么 在 其 后 。 大 多 数 开 关 并 不 关 心 它 们 是 否 被 多 次 处 理 , 但如 果 拿 到 一 个 “-” 而 不 是 整 个 开 关 , 就 会 导 致 <strong>Perl</strong> 试 图 从 标 准 输 入 读 取 它 的源 代 码 , 而 不 是 从 你 的 脚 本 里 。 而 且 一 个 -I 开 关 的 片 段 也 会 导 致 很 奇 怪 的 结 果 。不 过 , 有 些 开 关 的 确 关 心 它 们 是 否 被 处 理 了 两 次 , 比 如 -l 和 -0 的 组 合 。 你 要 么 把所 有 开 关 放 到 32 字 符 范 围 之 后 ( 如 果 可 行 ), 要 么 把 -0DIGITS 换 成BEGIN{ $/ = "\0DIGITS"; }。 当 然 , 如 果 你 用 的 不 是 Unix 平 台 , 那 么 我 们 保 证不 会 有 这 种 问 题 发 生 。对 #! 行 的 开 关 的 分 析 从 该 行 中 首 次 出 现 "perl" 的 地 方 开 始 。 为 了 emacs 用 户 的习 惯 ,"-*" 和 "-" 组 成 的 序 列 特 别 被 忽 略 掉 , 因 此 , 如 果 你 有 意 使 用 , 你 可 以 说 :493

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

Saved successfully!

Ooh no, something went wrong!