【问题标题】:Perl : Data structure, is this a hash?Perl:数据结构,这是哈希吗?
【发布时间】:2013-08-21 13:00:15
【问题描述】:

假设我使用下面的关系

sub _relation {
     +{
        player1   => 0,
        player2  => 1,
        player3    => 0,
      },
      ;
}
  1. 我应该如何打印或提取“player1”?
  2. 我应该如何打印或提取与“player2”相关的值?
  3. 这是什么数据结构?只是一个哈希?没有声明

【问题讨论】:

    标签: perl


    【解决方案1】:

    这个子例程返回一个散列reference(指向散列的指针。)以这种方式使用的花括号构造一个匿名散列并返回一个对它的引用。

    假设您像这样调用子例程:

    my $results = _relation();
    

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

    $results->{player1}    # 0
    $results->{player2}    # 1
    

    如果您想将匿名哈希复制到一个已命名的哈希中,您可以使用

    一次取消引用整个事物
    my %regular_hash = %$results;
    

    请参阅Perl References Tutorial 了解更多信息。

    【讨论】:

      【解决方案2】:

      friedo 的回答是正确的。在尝试理解数据结构时,使用 Data::Dumper 会很有帮助。

      use Data::Dumper;
      print Dumper(_relation());
      

      输出中的 {} 表明这是一个匿名哈希:

      $VAR1 = {
                'player3' => 0,
                'player2' => 1,
                'player1' => 0
              };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-31
        • 2014-04-06
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        相关资源
        最近更新 更多