in reply to Controlling the order of object destruction

The order is not guaranteed, although the current behaviour happens to be that the reference count decrement is in reverse order of execution of the corresponding 'my' expressions. For example:
sub DESTROY { print "$_[0][0] destroyed\n" } { my $x1 = bless [ "x1" ]; goto L2; L1: my $x2 = bless [ "x2" ]; goto L3; L2: my $x3 = bless [ "x3" ]; goto L1; L3: } __END__ x2 destroyed x3 destroyed x1 destroyed

Dave.