The Data::Swap module allows you to swap the contents of two referenced
variables, even if they have different types.
The main application is to change the base type of an object after it has
been created, for example for dynamic loading of data structures:
swap $self, bless $replacement, $newclass;
This module additionally contain the function "deref" which acts like a
generic list-dereferencing operator.