#file #perl #variables #hash
Вопрос:
Мне нужно проанализировать текстовый файл и собрать информацию воедино. Моя главная проблема заключается в этой структуре данных внутри внешнего текстового файла:
# Text file
$basket = [
{
'Apple' => 'red',
'Banana' => 'yellow',
'Grapes' => 'purple'
},
];
print "$basket[0]{'Apple'}n";
Очевидно, я получаю сообщение об ошибке, так как это не массив и не хэш. Тем не менее мне нужно распечатать значения для моих ключей. Но это работает только при использовании моего собственного кода:
# My input #
my %fruits = (
'Apple' => 'red',
'Banana' => 'yellow',
'Grapes' => 'purple');
print "$fruits{'Apple'}n";
Кто-нибудь знает, как получить доступ к значению «красный» при ссылке на текстовый файл.
Комментарии:
1. Сначала вам нужно разыменовать ссылку на массив:
$basket->[0]{Apple}
2. Вы забыли указать массив (
[]
).
Ответ №1:
То, что у вас есть, — это ссылка на массив, а не на массив. Поэтому вам нужно использовать дополнительный фрагмент синтаксиса (стрелку ->
), чтобы разыменовать его.
$basket->[0]{Apple}
Дополнительные сведения см. в разделах perldoc perllol и perldoc perldsc.