Uhoh !
Except for abstracting the interfaces and splitting up both Life and Girl, I don't see much chance for you.
My proposition assumes that Girl needs certain aspects of Life, which in turn needs certain (other) aspects of Girl. So you should create a third package, Base, which has all the functions Girl needs to work, and then you can have package Life; @ISA=qw(Girl); (or the other way around.
Yes, this will be complicated and require rethinking of the interfaces and object structure. No, there is no other way (at least I don't see it). Sorry ;)
|