--- nfo/perl/libs/Data/Mungle/Code/Symbol.pm 2003/03/27 15:17:03 1.2 +++ nfo/perl/libs/Data/Mungle/Code/Symbol.pm 2003/05/13 07:33:38 1.3 @@ -1,7 +1,10 @@ ## --------------------------------------------------------------------------- -## $Id: Symbol.pm,v 1.2 2003/03/27 15:17:03 joko Exp $ +## $Id: Symbol.pm,v 1.3 2003/05/13 07:33:38 joko Exp $ ## --------------------------------------------------------------------------- ## $Log: Symbol.pm,v $ +## Revision 1.3 2003/05/13 07:33:38 joko +## enhanced: now can get symbols as list or hash +## ## Revision 1.2 2003/03/27 15:17:03 joko ## namespace fixes for Data::Mungle::* ## @@ -11,6 +14,16 @@ ## --------------------------------------------------------------------------- +=pod + +=head1 TODO + + o Investigate: Could this functionality be replaced through Perl's core/lib/Symbol.pm? + + +=cut + + package Data::Mungle::Code::Symbol; use strict; @@ -30,12 +43,24 @@ my $mixinPackage = shift; my $callPackage = shift; $callPackage ||= __PACKAGE__; - foreach (@$symbols) { - { - no strict 'refs'; - my $newName = $mixinPackage . '::' . $_; - *{$newName} = get_coderef($callPackage, $_); + if (ref $symbols eq 'ARRAY') { + foreach (@$symbols) { + { + no strict 'refs'; + my $newName = $mixinPackage . '::' . $_; + *{$newName} = get_coderef($callPackage, $_); + } + } + + } elsif (ref $symbols eq 'HASH') { + foreach (keys %$symbols) { + { + no strict 'refs'; + my $newName = $mixinPackage . '::' . $symbols->{$_}; + *{$newName} = get_coderef($callPackage, $_); + } } + } }