Это адрес памяти хэша.
Например,
use Devel::Peek qw( Dump );
use Scalar::Util qw( refaddr );
my %h;
CORE::say(\%h);
CORE::say(sprintf("%x", refaddr(\%h)));
Dump(\%h, 0);
может выдать
HASH(0x1454af8) <-- The stringification of the reference.
1454af8 <-- The address of the referenced variable.
SV = IV(0x1435eb0) at 0x1435ec0 <-- The scalar passed to Dump...
REFCNT = 1
FLAGS = (TEMP,ROK) <-- ...is a reference...
RV = 0x1454af8 <-- ...and this is the address of the referenced variable.
Поскольку каждый процесс имеет свое собственное пространство памяти, это значение бесполезно вне процесса, который его сгенерировал. Вы не можете создать ссылку, которая ссылается на этот хеш из другого процесса (и было бы небезопасно, если бы процессы могли обращаться к одному и тому же хешу).
Я получаю один и тот же вывод последовательно во время многих казней.
Кстати, на это нет никаких гарантий. На самом деле, это не так в моей системе.
$ for q in 1 2 3; do perl -e'my %h; CORE::say(\%h);'; done
HASH(0x100c878)
HASH(0x1a08758)
HASH(0x45a31e8)