字符串" name"之间的卷曲括号在Perl中意味着什么?

时间:2015-12-03 00:04:56

标签: perl curly-braces

我只是想知道字符串" name"之间的花括号是什么?在Perl中是指如下例所示?这是我的第一个问题,请温柔,我是perl的新手

my $pool_name = $result->get->pool_attr("name")->{"name"};

3 个答案:

答案 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有点简洁。这里有两个概念需要理解: -

  1. Perl对象访问
  2. Perl参考访问
  3. 就像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”)