こんな感じの文字列を渡してあげるとデリファレンスしてくれます。
CODE(0x7fd541a84a30) HASH(0x7fd541a84a30) ARRAY(0x7fd541a84a30) SCALAR(0x7fd541a84a30)
なのでリファレンスの文字列さえ保存しておけば、参照先が生きている限り実体へアクセスが可能です。
#!/usr/bin/env perl use strict; use warnings; use feature qw/say/; use Acme::Pointer; my $addr; package Hello { my $a = sub { say "Hello" }; $addr = "$a"; say $addr; }; say "-" x 10; my $c = deref($addr); $c->(); if ($addr =~ /CODE\((.*)\)/) { my $_c = pointer($1); $_c->(); }