<?xml version="1.0" encoding="windows-1252"?>
<node id="998882" title="How do you do multi-version modules?" created="2012-10-13 18:56:48" updated="2012-10-13 18:56:48">
<type id="115">
perlquestion</type>
<author id="438862">
perl-diddler</author>
<data>
<field name="doctext">
I have a module I created .. and realized I wanted to change something in the interface.

So... I've been 'versioning' each module change, and would bump the version in the new module.. BUT, how could my module detect -- when a user says: "use module 1.0.0", and I'm working in module "2.0.0"?   My 2.0.0 module would never get called as far as I can tell...no?
&lt;p&gt;
What I would want to do is have my 2.0.0 module detect if it was called by something prior to 2.0, and apply the old interface semantics for compatibility.
&lt;p&gt;
The only way I can think of is to NOT version my code, but expect that any "using modules" will use "some version" (which? .. How would they know if I don't put a version in my code?)  but then if I was called as a versionless module, I think I might receive the version number as a parameter, and could then implement the behavior I want -- but it seems that to do that I have to NOT use a version number -- which would sorta make it hard for any new code
to know what version to specify to get behavior "X"...
&lt;p&gt;
Is it possible to do this?  Or prohibitively difficult?
&lt;p&gt;
Thanks for ideas, suggestions, clue-sticks!...
&lt;p&gt;
Linda
</field>
</data>
</node>
