[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: something like perl's 'require 5.4'

Craig Markwardt wrote:
> Vapuser <vapuser@catspaw.jpl.nasa.gov> writes:
> >   How about:
> >
> >   version=strupcase(strjoin(strsplit(!version.release,'[.-_]',/extract),""))
> >   input_version=strupcase(strjoin(strsplit(desired_release,'[.-_]',/extract),""))
> >   if version lt input_version then 'eeek'
> >
> >   Clearly `desired_release' would have to be input as a string.
> >
> >   Of couse, this method 'requires' IDL 5.3 (IIRC), to get the regular
> >   expression semantics of strsplit. The other question is will RSI use
> >   any separator in version designations besides these three?
> Umm, I never thought I'd be saying this, but aren't these a bit
> overengineered?  I have found that in 95% of the cases the DOUBLE
> compare will work, and in 4% of the cases the STRING compare will
> work.



IDL> print, double('5.4.1') gt 5.4


So I guess what you really you mean that in 95% of cases you don't care
about the (possible) last digit on the version number.  This is fine,
just say so.  Here's a good example of when that last digit matters,
from the "What's New in IDL 5.2.1":

The lib/compat directory containing the following obsolete date/time 
routines which are not Y2K compliant has been removed from the IDL 


REBIN Function Data Types Added:
The REBIN function now accepts 16-bit unsigned, 32-bit unsigned long, 
64-bit long, or 64-bit unsigned long integer data types.


HISTOGRAM Function Error with BINSIZE Set Fixed:
The HISTOGRAM function error resulting when the BINSIZE keyword is set 
has been fixed in this release.

I like your even simpler string compare method, but this one just
doesn't work as advertised.