Much fun was spent today tracking down a mysterious bug. I even had fun shoving a coderef into @INC to find out what was loading the errant module. I've now reproduced a minimal test case. Once I put it together, the bug was clear, but before that, there were many red herrings. Here's a minimal test case.
package Package1; use base 'Exporter'; our @EXPORT_OK = qw/this that/; our %EXPORT_TAGS = ( all => [qw/this that/], ); sub this { 'this' } sub that { 'that' } 1;
And another package:
package Package2; use base 'Exporter'; use Package1 ':all'; our @EXPORT_OK = ( @Package1::EXPORT_OK, 'foobar' ); our %EXPORT_TAGS = %Package1::EXPORT_TAGS; push @{ $EXPORT_TAGS{all} } => 'foobar'; sub foobar { 'foobar' } 1;
Do you see the bug? That was very, very annoying, but fortunately the fix is easy. If you see the bug, post it as a spoiler.
Cheers,
Ovid
New address of my CGI Course.
In reply to Another "Find the bug!" Node by Ovid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |