Рассмотрим следующий фрагмент:
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 в скалярном контексте?
Edit
Я добавил несколько других хэшей для печати:
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 'кортежей'?
Спасибо всем за ваши ответы до сих пор:)