No estoy seguro de por qué quieres hacer esto, pero si realmente lo necesitas, ignora las respuestas que usan los trucos para buscar en la memoria. Solo te causarán problemas.
¿Por qué quieres hacer esto? Probablemente haya un mejor diseño. De dónde sacas esa referencia codificada de.
Digamos que debe hacerlo por cualquier razón. En primer lugar, crear un registro de objetos donde la clave hash es la forma stringified, y el valor es una referencia debilitada:
use Scalar::Util qw(weaken);
my $array = [ ... ];
$registry{ $array } = $array;
weaken($registry{ $array }); # doesn't count toward ref count
Ahora, cuando se tiene la forma stringified, sólo mirar hacia arriba en el hash, comprobando para ver que sigue siendo una referencia:
if(ref $registry{$string}) { ... }
también puede probar Tie::RefHash y se deja manejar todos los detalles de este.
Hay un ejemplo más largo de esto en Intermediate Perl.
No veo cómo eso requiere magia más allá de 'Dumper ($ b)'. Obviamente quieres 'advertir'. ¿Cuándo quieres 'advertir'? En la mayoría de los lugares donde puedo escribir '$ a', también tengo' $ a' para volcar. – Axeman
Sería más fácil si sobrecargó la cadena para devolver el número. – MkV
Parece que solo quieres 'eval $ thing'. Por supuesto, esto depende de la forma en que fue codificado. Si utilizó Data :: Dumper o Data :: Dump, simplemente 'eval'ing recreará sus objetos. – simbabque