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

shigw001
求助 -如何判断传递进来的引用是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 数据呀?

flw
perldoc -f ref

撒哈拉里的鱼
要是我,就干脆加一个记号。

flw
[quote]原帖由 [i]撒哈拉里的鱼[/i] 于 2008-6-30 18:39 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8705114&ptid=1184844][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
要是我,就干脆加一个记号。 [/quote]
re

Nosferatu
或者用Scalar::Util

a_789_123
可以这样来来解决:

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

        你要做的操作
}

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

redspider
[quote]原帖由 [i]flw[/i] 于 2008-6-30 18:38 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8705110&ptid=1184844][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
perldoc -f ref [/quote]
[code]          [/code]

[[i] 本帖最后由 redspider 于 2008-7-1 10:21 编辑 [/i]]

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

        你要做的操作
}

hfahe
回复 #1 shigw001 的帖子

ref