字符串之间的花括号;名称“;在Perl中是什么意思?

字符串之间的花括号;名称“;在Perl中是什么意思?,perl,curly-braces,Perl,Curly Braces,我只是想知道字符串“name”之间的花括号在Perl中是什么意思,如下例所示?这是我的第一个问题,请温柔一点,我对perl非常陌生 my $pool_name = $result->get->pool_attr("name")->{"name"}; $pool_name是存储结果的位置 $result是保存对象的变量 ->get是对象$result的操作 ->pool_attr(“name”)获取->get操作的哈希项的值 ->{“name”}访问与值->pool_attr(

我只是想知道字符串“name”之间的花括号在Perl中是什么意思,如下例所示?这是我的第一个问题,请温柔一点,我对perl非常陌生

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

$pool_name是存储结果的位置

$result是保存对象的变量

->get是对象$result的操作

->pool_attr(“name”)获取->get操作的哈希项的值


->{“name”}访问与值->pool_attr(“name”)的名称“name”相关联的匿名哈希值

具体回答以下问题:什么是花括号。我想在这里说,它们是散列引用的语法

对于这样一个小片段,没有什么要解释的,但请想一想:

%hash = (
    'name'              => "Harsha",
    'designation'      => "Manager"
);

$hash_ref = \%hash;
当我们需要引用特定元素时,我们可以使用->操作符

my $name =  $hash_ref->{name};

这是一个从-

中略作修改的示例,Perl在这方面有点简洁。这里有两个概念需要理解:-

  • Perl对象访问
  • Perl引用访问
  • 就像java一样,我们可以在perl中使用引用。如果您来自C语言背景,请将它们视为C语言中的指针。现在,如果我们想使用引用访问任何内容,我们使用“->”符号。有更多的概念,如祝福等,但我们将不深入讨论。但重要的一点是Perl对象也类似于散列。因此,对perl对象成员等的所有访问都以类似于散列的方式完成(散列引用,而不是散列对象)

    因此,我们有一个对象$result。 $result->get调用对象上的get方法。此方法将向您返回另一个对象。我们叫它临时工吧

    现在,再次在这个对象上,我们使用函数参数“name”调用成员函数pool_attr。此函数最终将哈希返回给您

    请记住,Perl哈希的行为与Perl对象类似,因此我们使用类似的符号访问“name”键

    您可以使用printdata::Dumper::Dumper函数,它将告诉您有关数据结构的更多信息。但是请注意,perl对象是一种黑客行为,因此您可能会在Data::Dumper::Dumper中看到许多不必要的混乱。

    如果您“对perl非常熟悉”,那么阅读或修改会更好地帮助您。