Что {} означает в Perl? - PullRequest
       1

Что {} означает в Perl?

3 голосов
/ 22 июня 2011
my $a = {};
my $b = {$a=>''};

Я знаю, {} может использоваться для ссылки на хеш-ключ, но что здесь означает {}

Ответы [ 2 ]

11 голосов
/ 22 июня 2011

{} создает ссылку на пустой анонимный хеш.Подробнее здесь .

Пример кода:

use Data::Dumper;
my $a = {};
print "a is " . Dumper( $a );
my %b = ();
print "b is " . Dumper( \%b );

Выходы:

a is $VAR1 = {};
b is $VAR1 = {};
8 голосов
/ 22 июня 2011

{}, в этом контексте, является анонимным хеш-конструктором.

Он создает новый хеш, присваивает результат выражения внутри фигур хешу, а затем возвращает ссылку на этот хеш.

Другими словами,

{ EXPR }

примерно эквивалентно

do { my %hash = ( EXPR ); \%hash }

(EXPR может быть нулем, ничем.)

perlref

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...