in reply to (tye)Re: How should this work ? (design of Exporter::VA)
in thread How should this work ? (design of Exporter::VA)

I like the idea of not enabling the AUTOLOAD trapping to generate run-time version check redirection unless explicitly enabled.

But, using () on use disables any call to import, so that's a complicating factor to using this syntax.

Your last point: If I understand, suppose Module::Foo is not itself versioned via redirecting it to Foo_old or Foo_new. It's simply named Foo. It might contain an explicitly-coded run-time check to see if the client wants new behavior or old behavior. It can find out by calling a method on the blessed %EXPORT definition. If Foo calls _helper which then needs to know, it does it the same way.

Ah, but that behavior is coded into the function directly and won't care if I call the imported link or the direct function, since they both work the same. So a switch to enable/disable the versioning is not going to mean anything to it. But there is no confusion, since the user asked for a specific version of Foo, regardless of what else he asked for. (It implies that I need per-function memory on this, rather than a single setting)

—John