2017-02-02 2 views
0

Я работаю над программированием на Perl и понимаю некоторые основы Perl. По моему пониманию, если массив назначается скаляру, он будет хранить число элементов в скалярном. Однако я не понимаю хэшей. Например, я видел эту линию:Понимание контекста в perl

my $variable = {}; 

Я не могу понять, как это $variable все еще работает в хэш? Что мне здесь не хватает?

+3

'{}' не хэш, это хеш-ссылка. – jcaron

+2

Этот вопрос не имеет ничего общего с контекстом. – Flimzy

+0

мой плохой. Я понимаю это сейчас. Я исходил из фона Python и, таким образом, смутился. – skjoshi

ответ

3

{} создает hashref, который является скаляром.

Вам необходимо разыменовать его, чтобы получить доступ к элементам внутри него.

my $hashref = { foo => 1 }; 
say $hashref->{foo}; 

my %hash = (foo => 1); 
say $hash{foo}; 

Для получения более подробной информации см. perldoc perlref.

Смежные вопросы