我有一个代码行:
$data->{nav}->{'current'}->{performance_gross}
我理解$data
是标量,nav
,performance_gross
是哈希键。但是什么是'current'
?
答案 0 :(得分:1)
nav
,'current'
和performance_gross
是分别评估字符串nav
,current
和performance_gross
的表达式。这三个字符串用作不同哈希值的键。
以下都是等效的:
$data->{'nav'}->{'current'}->{'performance_gross'}
$data->{'nav'}{'current'}{'performance_gross'}
$data->{nav}->{current}->{performance_gross}
$data->{nav}{current}{performance_gross}
答案 1 :(得分:1)
Perl允许哈希查找中的键的任意表达式:
$hash{ arbitrary($code) . $here }
(结果字符串用作散列键。)
但是,如果{
和}
之间的唯一标识是简单标识符,则会自动引用它:
$hash{ some_word }
# is equivalent to
$hash{ 'some_word' }
这就是为什么你经常可以省略哈希键中的引号。但是明确地将字符串文字放在那里仍然有效,这意味着同样的事情。