/[cvs]/nfo/perl/libs/Data/Mungle/Code/Symbol.pm
ViewVC logotype

Diff of /nfo/perl/libs/Data/Mungle/Code/Symbol.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by joko, Thu Mar 27 15:17:03 2003 UTC revision 1.3 by joko, Tue May 13 07:33:38 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## ---------------------------------------------------------------------------  ## ---------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.3  2003/05/13 07:33:38  joko
6    ##  enhanced: now can get symbols as list or hash
7    ##
8  ##  Revision 1.2  2003/03/27 15:17:03  joko  ##  Revision 1.2  2003/03/27 15:17:03  joko
9  ##  namespace fixes for Data::Mungle::*  ##  namespace fixes for Data::Mungle::*
10  ##  ##
# Line 11  Line 14 
14  ## ---------------------------------------------------------------------------  ## ---------------------------------------------------------------------------
15    
16    
17    =pod
18    
19    =head1 TODO
20    
21      o Investigate: Could this functionality be replaced through Perl's core/lib/Symbol.pm?
22      
23    
24    =cut
25    
26    
27  package Data::Mungle::Code::Symbol;  package Data::Mungle::Code::Symbol;
28    
29  use strict;  use strict;
# Line 30  sub export_symbols { Line 43  sub export_symbols {
43    my $mixinPackage = shift;    my $mixinPackage = shift;
44    my $callPackage = shift;    my $callPackage = shift;
45    $callPackage  ||= __PACKAGE__;    $callPackage  ||= __PACKAGE__;
46    foreach (@$symbols) {    if (ref $symbols eq 'ARRAY') {
47      {      foreach (@$symbols) {
48        no strict 'refs';        {
49        my $newName = $mixinPackage . '::' . $_;          no strict 'refs';
50        *{$newName} = get_coderef($callPackage, $_);          my $newName = $mixinPackage . '::' . $_;
51            *{$newName} = get_coderef($callPackage, $_);
52          }
53        }
54    
55      } elsif (ref $symbols eq 'HASH') {
56        foreach (keys %$symbols) {
57          {
58            no strict 'refs';
59            my $newName = $mixinPackage . '::' . $symbols->{$_};
60            *{$newName} = get_coderef($callPackage, $_);
61          }
62      }      }
63        
64    }    }
65  }  }
66    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed