From 1af28933a9cff0015d271306f510e616583431c9 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Thu, 19 Mar 2009 12:18:17 +0100 Subject: using Class::MOP instead of symbol table hackery --- lib/Tree/Transform/Utils.pm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'lib/Tree/Transform/Utils.pm') diff --git a/lib/Tree/Transform/Utils.pm b/lib/Tree/Transform/Utils.pm index f2b2d6b..cdc58f7 100644 --- a/lib/Tree/Transform/Utils.pm +++ b/lib/Tree/Transform/Utils.pm @@ -1,21 +1,21 @@ package Tree::Transform::Utils; use strict; use warnings; +use Class::MOP; + +my $RULES_NAME='%_tree_transform_rules'; sub _rules_store { - no strict 'refs'; - if (!defined *{$_[0].'::_tree_transform_rules'}{HASH}) { - *{$_[0].'::_tree_transform_rules'}={}; + my $pack=Class::MOP::Class->initialize($_[0]); + + if (! $pack->has_package_symbol($RULES_NAME) ) { + $pack->add_package_symbol($RULES_NAME,{}); } - return *{$_[0].'::_tree_transform_rules'}{HASH}; + return $pack->get_package_symbol($RULES_NAME); } -sub _get_isa { - no strict 'refs'; - if (!defined *{$_[0].'::ISA'}{ARRAY}) { - return (); - } - return @{*{$_[0].'::ISA'}{ARRAY}}; +sub _get_inheritance { + return Class::MOP::Class->initialize($_[0])->class_precedence_list; } 1; -- cgit v1.2.3