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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations)
Tue May 13 07:33:38 2003 UTC (21 years, 1 month ago) by joko
Branch: MAIN
Changes since 1.2: +31 -6 lines
enhanced: now can get symbols as list or hash

1 root 1.1 ## ---------------------------------------------------------------------------
2 joko 1.3 ## $Id: Symbol.pm,v 1.2 2003/03/27 15:17:03 joko Exp $
3 root 1.1 ## ---------------------------------------------------------------------------
4 joko 1.2 ## $Log: Symbol.pm,v $
5 joko 1.3 ## Revision 1.2 2003/03/27 15:17:03 joko
6     ## namespace fixes for Data::Mungle::*
7     ##
8 joko 1.2 ## Revision 1.1 2003/01/22 17:59:22 root
9     ## + refactored from Mail::Audit::Dispatch
10     ##
11 root 1.1 ## ---------------------------------------------------------------------------
12    
13    
14 joko 1.3 =pod
15    
16     =head1 TODO
17    
18     o Investigate: Could this functionality be replaced through Perl's core/lib/Symbol.pm?
19    
20    
21     =cut
22    
23    
24 joko 1.2 package Data::Mungle::Code::Symbol;
25 root 1.1
26     use strict;
27     use warnings;
28    
29     require Exporter;
30     our @ISA = qw( Exporter );
31     our @EXPORT_OK = qw(
32     export_symbols
33     );
34    
35    
36 joko 1.2 use Data::Mungle::Code::Ref qw( get_coderef );
37 root 1.1
38     sub export_symbols {
39     my $symbols = shift;
40     my $mixinPackage = shift;
41     my $callPackage = shift;
42     $callPackage ||= __PACKAGE__;
43 joko 1.3 if (ref $symbols eq 'ARRAY') {
44     foreach (@$symbols) {
45     {
46     no strict 'refs';
47     my $newName = $mixinPackage . '::' . $_;
48     *{$newName} = get_coderef($callPackage, $_);
49     }
50     }
51    
52     } elsif (ref $symbols eq 'HASH') {
53     foreach (keys %$symbols) {
54     {
55     no strict 'refs';
56     my $newName = $mixinPackage . '::' . $symbols->{$_};
57     *{$newName} = get_coderef($callPackage, $_);
58     }
59 root 1.1 }
60 joko 1.3
61 root 1.1 }
62     }
63    
64     1;

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