[EMAIL PROTECTED] (Khemir Nadim) writes: > "Vagn Johansen" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] > > How do you avoid breaking old programs when the interface changes? > You don't. IMHO it's the users responsibility to check for what version they > are using not the module author.
It is, however, polite for the module author to inform the user that there's been a change. Imagine I change the interface of module X. You have some code which uses program X and it works fine. Now you write some completely different code that depends on module Z, so you use CPANPLUS or whatever to install module Z. Module Z depends on module Y, so CPANPLUS installs that too, and module Y depends on a new version of module X, so CPANPLUS installs that one as well. Boom, action at a distance. As a result of using a completely unrelated module, you've just broken a load of old code. This is why I tend to do something like this in Makefile.PL: print "WARNING: This new major release is incompatible with previous\n"; print "releases. Please check any code which uses this module.\n"; print "Press enter to continue.\n"; <>; -- I think of AI as the study of programming situations where either don't know what you want, or don't know how to get it. - Sean Burke