[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:
> > Hi all.
> >
> >   I'm looking for something that check the version of the current IDL
> >   session against an input version, like perl's 'require 5.4'
> >   semantics and I *thought* I saw someone mention using something very
> >   much like this.
> >
> >   Does anyone know of such a thing or was I just hallucinating?
> Extending on JD's answer with two more possibilities:
> if        !version.release  LT '5.4' then message, 'ERROR'
> if double(!version.release) LT  5.4  then message, 'ERROR'
> The first comparison is a string compare, while the second one is a
> numeric compare.  There is a slight difference, but in practice they
> are identical, and they also both handle the case of 5.4.1, etc.  The
> former will handle 5.4.1a, but I think it's rare.  I always use the
> latter.


IDL> print,double('5.4') lt double ('5.4.1')
IDL>print,double('5.4') eq double ('5.4.1')

Hopefully RSI won't try to pull the latter on us.

On the other hand, your string method looks good.  The best counter
example I could come up with is:

IDL> print,'5.5a' lt '5.5B'

Not too likely.  I think I'll adopt the string version.