Perl:数据结构,这是一个哈希吗?

ado*_*ado 5 perl

假设我使用了以下关系

sub _relation {
     +{
        player1   => 0,
        player2  => 1,
        player3    => 0,
      },
      ;
}
Run Code Online (Sandbox Code Playgroud)
  1. 我该如何打印或提取"player1"?
  2. 我应该如何打印或提取与"player2"相关的值?
  3. 这是什么样的数据结构?哈哈?没有声明

fri*_*edo 6

此子例程返回一个哈希引用(指向哈希的指针.)以这种方式使用的大括号构造一个匿名哈希并返回对它的引用.

假设你调用子程序是这样的:

my $results = _relation();
Run Code Online (Sandbox Code Playgroud)

您可以使用->解除引用运算符访问元素:

$results->{player1}    # 0
$results->{player2}    # 1
Run Code Online (Sandbox Code Playgroud)

如果要将匿名哈希值复制到命名哈希值,可以立即取消引用整个事物

my %regular_hash = %$results;
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Perl参考教程.