У меня есть строки кода:не могу понять некоторые переменные
$data->{nav}->{'current'}->{performance_gross}
я понимаю $data
скалярная и nav
, performance_gross
хеширования ключи. Но что такое 'current'
?
У меня есть строки кода:не могу понять некоторые переменные
$data->{nav}->{'current'}->{performance_gross}
я понимаю $data
скалярная и nav
, performance_gross
хеширования ключи. Но что такое 'current'
?
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}
Perl позволяет произвольные выражения для ключа в хэш-поиска:
$hash{ arbitrary($code) . $here }
(. Полученная строка используется в качестве хэш-ключа)
Однако, если только между {
и }
является простым идентификатором, это автоматически цитируется:
$hash{ some_word }
# is equivalent to
$hash{ 'some_word' }
Вот почему вы часто можете опускать кавычки в хэш-ключах. Но по-прежнему справедливо явно указывать строковый литерал, и это означает одно и то же.
В этом случае одиночные кавычки вокруг 'current' являются необязательными. Это то же самое, что: '$ data -> {nav} -> {current} -> {performance_gross}'. Итак, «текущий» также является ключевым. – toolic
эквивалентным доступом будет '$ data -> {nav} {current} {performance_gross}' – eballes