Re: something like perl's 'require 5.4' [message #24700 is a reply to message #24698] |
Mon, 16 April 2001 19:57   |
John-David T. Smith
Messages: 384 Registered: January 2000
|
Senior Member |
|
|
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.
Hmmm...
IDL> print,double('5.4') lt double ('5.4.1')
0
IDL>print,double('5.4') eq double ('5.4.1')
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'
0
Not too likely. I think I'll adopt the string version.
Thanks,
JD
|
|
|