sub walk_oo_tree { my $obj = shift; my $class = ref $obj ? ref $obj : $obj; my @class_list = (); unless ($skip_class_map{$class}) { NO_STRICT_REFS_ZONE: { no strict 'refs'; @class_list = ($class, map { @{walk_oo_tree($_)} } @{join('::', $class, 'ISA')}); use strict 'refs'; } } return \@class_list; }