【发布时间】:2013-08-21 13:00:15
【问题描述】:
假设我使用下面的关系
sub _relation {
+{
player1 => 0,
player2 => 1,
player3 => 0,
},
;
}
- 我应该如何打印或提取“player1”?
- 我应该如何打印或提取与“player2”相关的值?
- 这是什么数据结构?只是一个哈希?没有声明
【问题讨论】:
标签: perl
假设我使用下面的关系
sub _relation {
+{
player1 => 0,
player2 => 1,
player3 => 0,
},
;
}
【问题讨论】:
标签: perl
这个子例程返回一个散列reference(指向散列的指针。)以这种方式使用的花括号构造一个匿名散列并返回一个对它的引用。
假设您像这样调用子例程:
my $results = _relation();
您可以使用 -> 取消引用运算符访问元素:
$results->{player1} # 0
$results->{player2} # 1
如果您想将匿名哈希复制到一个已命名的哈希中,您可以使用
一次取消引用整个事物my %regular_hash = %$results;
请参阅Perl References Tutorial 了解更多信息。
【讨论】:
friedo 的回答是正确的。在尝试理解数据结构时,使用 Data::Dumper 会很有帮助。
use Data::Dumper;
print Dumper(_relation());
输出中的 {} 表明这是一个匿名哈希:
$VAR1 = {
'player3' => 0,
'player2' => 1,
'player1' => 0
};
【讨论】: