Дело в том что Perl преобразует автоматически все ключи хеша в строки (в том числе и ссылки). Я бы использовал другую конструкцию: вспомогательный хеш, в котором в качестве ключей было строковое представление ссылки, а в качестве значения сама ссылка.
use strict;
my ($a, $b, $c) = (1,2,3);
my %ref_values = (
\\$a => \\$a,
\\$b => \\$b,
\\$c => \\$c
);
my %hash = (
\\$a => \'a\',
\\$b => \'b\',
\\$c => \'c\'
);
foreach (keys %hash) {
print ${$ref_values{$_}}, "\\n";
};