#!/usr/bin/perl
use strict;
our $hash="symbol table";
my $name = "hash";
my $globref = ${*::}{$name};
print $globref,"\n";
local *entry = *{$globref};
our $entry;
print $entry,"\n";
print ${*{${*::}{$name}}},"\n"
输出为
*main::hash
symbol table
symbol table
perl中符号表用typeglob来存储perl包变量,它本身也是一个hash,一个typeglob的名字可以通过访问这个hash得到
${*::}{$name}正是获得了$hash对应typeglob的名字,然后把它指向另外一个typeglob,两个typeglob可以用来获得同一个包变量.

没有评论:
发表评论