in reply to Most efficient way to share blessed refence among packages

Why not simply define an static attribute registry in the class (or package if you wish) Queue? You could specify which registry to use by setting it via a class method setRegistry in class Queue.

package Queue; my $register; sub new {...} sub setRegister { my ($pkg, $reg) = @_; $register = $reg; }
and in main.pl:
my $reg = Register->new(); my $queue = Queue->new(); Queue->setRegister($reg);

This is the simplest approach just to give you the idea, and not how I'd actually do it, but I can elaborate if there's interest.

Hope this helps, -gjb-