Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Planning for Backwards Compatibility

by snowhare (Friar)
on Aug 24, 2007 at 01:08 UTC ( #634765=note: print w/replies, xml ) Need Help??

in reply to Planning for Backwards Compatibility

You left out another approach: Keep the default as is but add a 'opt in' method for the new API.

This has happened to me a couple of times with CGI::Minimal.

The first time was when I needed to support 'mixed' GET/POST semantics (processing GET style CGI parameters and POST style CGI parameters in a single POST request). Which is wierd and non-RFC, but required to integrate with some specific code I didn't have control over. Changing the default would likely break code for someone (probably me ;) ), so I added a static method, CGI::Minimal::allow_hybrid_post_get(1);, that let the programmer request the new semantics.

A few days ago someone requested a change to CGI::Minimal's behavior when running under ModPerl2. By default, they ran their server with %ENV hash filling with the CGI environment variables disabled (which give a small performance boost) while CGI::Minimal, by default, forces filling %ENV (which is the case I personally need). Changing the default would definitely break existing code. But I could see the utility of his request (although my benchmarking puts the performance pop only in the single digit percentages).

So I added a 'use' flag (:no_subprocess_env) to request the API behavior he wanted.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://634765]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2023-10-03 04:55 GMT
Find Nodes?
    Voting Booth?

    No recent polls found