我只是想知道字符串" name"之间的花括号是什么?在Perl中是指如下例所示?这是我的第一个问题,请温柔,我是perl的新手
my $pool_name = $result->get->pool_attr("name")->{"name"};
答案 0 :(得分:2)
要具体回答这个问题,花括号是什么。我会在这里说他们是哈希引用的语法。
在这么小的片段上解释的不多,但想到这个:
%hash = (
'name' => "Harsha",
'designation' => "Manager"
);
$hash_ref = \%hash;
当我们需要引用特定元素时,我们可以使用 - >操作
my $name = $hash_ref->{name};
这是一个略微修改过的示例,取自 - http://www.thegeekstuff.com/2010/06/perl-hash-reference/
答案 1 :(得分:0)
Perl有点简洁。这里有两个概念需要理解: -
就像java一样,我们可以在perl中引用。如果您来自C背景,请将它们视为C中的指针。现在,如果我们想使用引用访问任何内容,我们使用“ - >”符号。有更多的概念,如祝福等。但我们不会进入那个。但重要的是Perl Objects也像HASH。因此,对perl Object成员等的所有访问都以与HASH(HASH引用,而不是哈希对象)类似的方式完成。
所以,我们有一个对象$ result。 $ result->获取对Object的Get方法。此方法返回另一个对象。我们称之为临时。
现在,再次在此对象上,我们使用函数参数“name”调用成员函数pool_attr。这个函数最终将HASH返回给你。
请记住,Perl HASHes的行为与perl Objects类似,因此我们使用类似的表示法访问“name”键。
您可以使用print Data :: Dumper :: Dumper函数,它会告诉您有关数据结构的更多信息。但请注意,perl对象有点像黑客,所以你可能会看到Data :: Dumper :: Dumper带来很多不必要的混乱。
答案 2 :(得分:-1)
$ pool_name是存储结果的地方。
$ result是保存对象的变量。
- > get是对象$ result的操作。
- > pool_attr(“name”)获取 - > get动作的散列项的值。
- > {“name”}访问与名称“name”关联的匿名哈希值 - > pool_attr(“name”)