Нет встроенного синтаксиса, но вы всегда можете написать свой собственный:
my $value = sub {map {$_ => $_[1]} @{$_[0]}};
my $hash = {
[qw(a b c)]->$value('valA'),
[qw(d e f)]->$value('valB'),
};
say join ', ' => map "$_: $$hash{$_}", sort keys %$hash;
# a: valA, b: valA, c: valA, d: valB, e: valB, f: valB
Если вы собираетесь много заниматься этим, вы можете посмотреть на Hash::Util
's *Функция 1005 *, которая позволяет загружать несколько клавиш с одинаковым расположением памяти.