> I want to pollute. What's the best way of doing this?
Typically, namespace pollution is handled via symbol table manipulations. Here's an untested import sub that pushes functions from Carp and Test into the caller's namespace with different names:
require Carp; require Test; @myexports = ( { spkg => 'Carp', ssub => 'carp', name => 'complain' }, { spkg => 'Test', ssub => 'ok', name => 'test_ok' }, ); sub import { my $callpkg = (caller)[1]; foreach $sym ( @myexports ) { no strict; *{"$callpkg\::$name"} = \&{"$spkg\::$ssub"}; } }
Note that as discussed below, strict and warnings are pragmas and do not operate in the same way as the symbol exporting shown above.
> Why does madness lie yonder?
I think this has been well answered elsewhere in this thread. *grin*
In reply to Re: Re: How do I make one package use a module from another package?
by simonm
in thread How do I make one package use a module from another package?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |