diff options
author | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-19 12:18:17 +0100 |
---|---|---|
committer | Gianni Ceccarelli <dakkar@dechirico.(none)> | 2009-03-19 12:18:17 +0100 |
commit | 1af28933a9cff0015d271306f510e616583431c9 (patch) | |
tree | c229f914fe93ced4d5d281ff68c8fcc40dccd72c /lib/Tree/Transform/Utils.pm | |
parent | call by name (diff) | |
download | Tree-Transform-XSLTish-1af28933a9cff0015d271306f510e616583431c9.tar.gz Tree-Transform-XSLTish-1af28933a9cff0015d271306f510e616583431c9.tar.bz2 Tree-Transform-XSLTish-1af28933a9cff0015d271306f510e616583431c9.zip |
using Class::MOP instead of symbol table hackery
Diffstat (limited to 'lib/Tree/Transform/Utils.pm')
-rw-r--r-- | lib/Tree/Transform/Utils.pm | 20 |
1 files changed, 10 insertions, 10 deletions
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; |