in reply to Re: Re: Re: Re: How do I make one package use a module from another package?
in thread How do I make one package use a module from another package?

> 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*

  • Comment on Re: Re: How do I make one package use a module from another package?
  • Download Code