引用
$ perldoc -tf ref
ref EXPR
ref Returns a non-empty string if EXPR is a reference, the empty
string otherwise. If EXPR is not specified, $_ will be used. The
value returned depends on the type of thing the reference is a
reference to. Builtin types include:
SCALAR
ARRAY
HASH
CODE
REF
GLOB
LVALUE
If the referenced object has been blessed into a package, then
that package name is returned instead. You can think of "ref" as
a "typeof" operator.
if (ref($r) eq "HASH") {
print "r is a reference to a hash./n";
}
unless (ref($r)) {
print "r is not a reference at all./n";
}
See also perlref.
2、舉例
簡單來講,就是若是一個變量是個引用,那ref就能夠返回一個表示其實際引用對象的描述性字符串,不然就會返回空值。若是沒有指定ref函數的參數,默認對$_變量操做。若是被引用的對象已經被打包,則會返回該包的名稱,相似typeof操做符。
代碼:
#!/usr/bin/perl -w
%hash=('Tom'=>'Male','Jerry'=>'Female');
$href=/%hash;
for $key (keys %$href) {
print $key." is ".$href->{$key};
print "/n";
}
if ( ref($href) eq "HASH" ) {
print "href is a reference to a hash./n";
}
unless ( ref($href) ) {
print "href is not a reference at all./n";
}
print "href is ",ref($href),"./n";
輸出結果:
引用
$ perl testref.pl Jerry is Female Tom is Male href is a reference to a hash. href is HASH