in reply to Storage Object

I try to use 'our' That doesn't seem to present $storage in the other packages
The reason for this is that $storage is declared into the main:: package, so isn't a global. If you still want to use as is with your classes you could always access it by it's full path $main::storage, but that's not a great solution.

I think your best options are either to pass it to the constructor each time or put it in the Source package as a package variable and have the Destination package access it from their e.g

$Source::storage = Storage->new(); # in package Destination do_stuff_to($Source::storage);
Another option would be to have Destination inherit from Source
package Destination; @ISA = qw(Source); ... # main code $Source::storage = Storage->new(); # Destination can now use $storage, hurrah
Er, nope, that's wrong. Why? Because child classes only inherit methods, and even then it's only through the method lookup done by objects.
HTH

_________
broquaint