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.

*sym = \&pippin;如 果 你 从 另 外 一 个 角 度 来 考 虑 问 题 , 类 型 团 本 身 可 以 看 作 一 种 散 列 , 它 里 面 有 不 同 类 型 的 变量 记 录 。 在 这 种 情 况 下 , 键 字 是 固 定 的 , 因 为 一 个 类 型 团 正 好 可 以 包 含 一 个 标 量 , 一 个 散 列 ,等 等 。 但 是 你 可 以 取 出 独 立 的 引 用 , 象 这 样 :*pkg::sym{SCALAR}*pkg::sym{ARRAY}*pkg::sym{HASH}*pkg::sym{CODE}*pkg::sym{GLOB}*pkg::sym{IO}# 和 \$pkg::sym 一 样# 和 \@pkg::sym 一 样# 和 \%pkg::sym 一 样# 和 \&pkg::sym 一 样# 和 \*pkg::sym 一 样# 内 部 的 文 件 / 目 录 句 柄 , 没 有 直 接 的 等 价 物*pkg::sym{NAME} # “sym”( 不 是 引 用 )*pkg::sym{PACKAGE} # “pkg”( 不 是 引 用 )你 可 以 通 过 说 *foo{PACKAGE} 和 *foo{NAME} 找 出 *foo 符 号 表 记 录 来 自 哪 个 名字 和 包 。 这 个 功 能 对 那 些 传 递 类 型 团 做 参 数 的 子 过 程 里 很 有 用 :sub identify_typeglob {my $glob = shift;print 'You gave me ', *{glob}{PACKAGE}, '::', *{$globa}{NAME}, "\n";}identify_typeglob(*foo);identify_typeglob(*bar::glarch);它 打 印 出 :You gave me main::fooYou gave me bar::glarch272

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

Saved successfully!

Ooh no, something went wrong!