Any way to "inject" an INIT block into a different module?
abigail at abigail.be
Fri May 30 16:46:00 BST 2008
On Fri, May 30, 2008 at 04:17:45PM +0100, Andy Wardley wrote:
> Abigail wrote:
> >Well, if it's acceptable to do the "use Control" from the Amp.pm module
> >(as you were doing it initially), wouldn't moving the "use Control" to
> >end of the package solve the problem? By the time Control -> import ()
> >gets called, all the subs of Amp.pm are defined.
> Yes, it would. Although it might be a bit backwards have a "use" right at
> the end of the file. Furthermore, the real equivalent of my Control module
> is also defining some constant subroutines and package vars that really do
> need to be done up front so they can be used in the code body. But I could
> just as easily call another method at the end.
> use Control qw( volume sustain );
> # my code
> blah blah $CONTROLS; # $CONTROL is exported by Control, for e.g.
> Or I could put the explicit generate_controls() call in an INIT block at the
> top. But then we're back to manually doing what I'm trying to automate from
> the Control module.
You could add the '__PACKAGE__->generate_controls;' automatically using
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: not available
Url : http://london.pm.org/pipermail/london.pm/attachments/20080530/079f29ed/attachment.pgp
More information about the london.pm