求助 -如何判断传递进来的引用是hash还是array

求助 -如何判断传递进来的引用是hash还是array

比如:
有一个引用数据结构大致为:
$testData -> {"test"} ->  ? ;
这个 ?  当有单个object的时候是个hash,如 $testData -> {"test"} -> \%testInfo ;

           当有多个的时候 是个 Array,如 $testData -> {"test"} -> [0] -> \%testInfo ;
                                                       $testData -> {"test"} -> [1] -> \%testInfo ;

函数:
sub test
{
     my $pTest = shift;
   # 下面是解析数据

}

调用:
&test( $testData -> {"test"} );

我如何能判断传入的是hash 还是 array 进行 parse 数据呀?
perldoc -f ref
要是我,就干脆加一个记号。


QUOTE:
原帖由 撒哈拉里的鱼 于 2008-6-30 18:39 发表
要是我,就干脆加一个记号。

re
或者用Scalar::Util
可以这样来来解决:

if($变量=~/^HASH/){
      你要做的操作
}elsif($变量=~/^ARRAY/){

        你要做的操作
}

刚才一疏忽,写错了,呵呵,不好意思啊


QUOTE:
原帖由 flw 于 2008-6-30 18:38 发表
perldoc -f ref



[Copy to clipboard] [ - ]
CODE:
         

OK.我去看看。
还有  这样也行?
if($变量=~/^HASH/){
      你要做的操作
}elsif($变量=~/^ARRAY/){

        你要做的操作
}
ref