YAML::XS::Load() is able to create aliases for non-ref values when loading.
But when dumping, the alias is lost:
use YAML::XS;
use Data::Dumper;
my $yaml = q/{ x: &alias a, y: *alias }/;
my $data = Load $yaml;
$data->{y} = "b";
say Dumper $data;
say Dump($data);
__END__
$VAR1 = {
'x' => 'b',
'y' => ${\$VAR1->{'x'}}
};
---
x: b
y: b
YAML::XS::Load() is able to create aliases for non-ref values when loading. But when dumping, the alias is lost: