Рассмотрим следующий фрагмент:
use strict;
use warnings;
my %a = ( a => 1,
b => 2,
c => 'cucu',
d => undef,
r => 1,
br => 2,
cr => 'cucu',
dr => '321312321',
);
my $c = %a;
print $c;
Результат этого - 5/8
, и я не понимаю, что это представляет. Я где-то читал, что число из этого дробного результата может представлять количество сегментов из хэша, но ясно, что это не так.
Кто-нибудь знает, как оценивается perl-хеш в скалярном контексте?
Редактировать
Я добавил несколько других хешей для печати:
use strict;
use warnings;
use 5.010;
my %a = ( a => 1,
b => 2,
c => 'cucu',
d => undef,
r => 1,
br => 2,
cr => 'cucu',
dr => '321312321',
);
my $c = %a;
say $c; # 5/8
%a = ( a => 1,
b => 21,
c => 'cucu',
br => 2,
cr => 'cucu',
dr => '321312321',
);
$c = %a;
say $c; # 4/8
%a = ( a => 1,
b => 2,
c => 'cucu',
d => undef,
r => 1,
br => 2,
cr => 'cucu',
dr => '321312321',
drr => '32131232122',
);
$c = %a;
say $c; #6/8
Итак, вы называете 'кортеж', подобный a => 1
корзиной в хэше? в таком случае, почему последний хэш все еще имеет 8 в качестве знаменателя, когда у него 9 «кортежей»?
Спасибо всем за ваши ответы до сих пор:)