On Mon, Oct 18, 2004 at 01:05:06PM -0400, Michael G Schwern <[EMAIL PROTECTED]> wrote: > On Mon, Oct 18, 2004 at 04:43:12PM +0200, H.Merijn Brand wrote: > > > Please consider 0.50 very soon, in which you fix 'err' calls that are an > > > obvious mistake given defined-or functionality in blead and 5.8.x-dor: > > > > That would be too easy to call. here's a patch ... > > Thank you. Patch provisionally rejected. Here's why. > > By adding a new keyword dor has broken backwards compatibility. Test::More > is doing nothing wrong by current standards. main::err() is fully declared > before its use. There is no ambiguity. > > Now with dor its suddenly a keyword and code breaks at no fault to the > programmer. Its not just a warning, its a syntax error. Upgrading from 5.8 > to 5.10 will break code. This is a problem. Its a problem every time we > add a new keyword.
FWIW, "err" is a second-class keyword. This means that an imported function ( or even *err = sub { ... } ) will take precedence over the keyword. Does anyone know the history of other keywords that have been added? Seems like there haven't been any in a long while except for "lock", which *was* done in a backward-compatible the way M. Schwern suggests for err, but IIRC not in an extensible way that could easily be applied to other new keywords.