參照好像很複雜,應該是

我也還沒完全理解,

不過我起麻應該算是小小的用到它了

實際的例子

sub aa {

        my %a = (
                a=>1,
                b=>2,
        );

        return \%a;
}

上面在回傳的時後多了

我如果

print aa();

就會看到它給你的是

HASH(0xf73df90)

我如何看它的內容

my $hash_ref = aa();
if ($hash_ref =~ /HASH/) {
   while (my ($key,$value) = each %$hash_ref) {
      print "
$key,$value";
   }
}

顯示

a,1
b,2

這邊我會先判斷$hash_ref是不是肯定就是 HASH,不然在 %$hash_ref 會因為它不是HASH而程式中斷

或者另一方式得到內容,用 Data::Dumper的Dumper();

use Data::Dumper;
my $hash_ref = aa();
print Dumper($hash_ref);

顯示

$VAR1 = {
          'a' => 1,
          'b' => 2
        };

或者

用 while each 可以得到 key 跟 value

也可以搭配 Dumper ,臨時得到它的內容架構

然後就可以直接用下列方式得到 a跟b的值

print $hash_ref->{'a'};
print $hash_ref->{'b'};

以上應該就是參照吧

最後修改日期: 2011 年 08 月 02 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。