If you add this before Main(@ARGV)
our( $GlobalMya , $GlobalMyb, $GlobalMyc );
$GlobalMya = MyA->new;
$GlobalMyb = MyB->new($GlobalMya);
$GlobalMyc = MyC->new($GlobalMya);
you should a difference like this
Commencing GLOBAL DESTRUCTION PHASE at - line 8.
|
|
Use of uninitialized value in warn at - line 51 during global destruction.
|
|
BREAK LEAK MyB=HASH(0xa4762c) at - line 51 during global destruction.
| LEAK MyC=HASH(0xa4758c) MyA=HASH(0x3f8d4c) at - line 62.
|
DESTROY MyB=HASH(0xa4762c) at - line 37 during global destruction.
| DESTROY MyC=HASH(0xa4758c) at - line 37.
|
DESTROY MyA=HASH(0xa475ec) at - line 37 during global destruction.
| BREAK LEAK MyB=HASH(0x9c9694) MyA=HASH(0x3f8d4c) at - line 51.
|
Use of uninitialized value in warn at - line 62 during global destruction.
|
|
LEAK MyC=HASH(0xa4765c) at - line 62 during global destruction.
| DESTROY MyA=HASH(0x3f8d4c) at - line 37.
|
DESTROY MyC=HASH(0xa4765c) at - line 37 during global destruction.
| DESTROY MyB=HASH(0x9c9694) at - line 37. |
I've tried with 5.8.9 and 5.12.2, only the global destruction order varies between the two versions