On 1/26/2014 05:01, Russell Jenkins wrote:
On 26/01/2014 1:24 pm, Warren Young wrote:
Can anyone explain how the Foo module exports get changed in my trivial
example?
When you 'use Dancer2', its import adds an import method into your apps
namespace, overriding the one Exporter provides.
Thanks for tracking this down.
I guess this has something to do with the order Perl evaluates BEGIN
blocks, since swapping the "use Dancer2" and "require Exporter" lines
doesn't help.
For now, I guess the solution is to very careful to separate the
Dancer-using parts of my code from the parts that get *called by* the
Dancer-using parts.
You should be able to fix this over-reach on Dancer's part by using
Perl's reflection features, possibly coupled with eval(). Dancer2
should be able to detect that an import() routine already exists and
keep a reference to it, so it can call the overridden version if the
caller passes the name of a symbol that Dancer2 doesn't export.
_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users