Re: something like perl's 'require 5.4' [message #24694 is a reply to message #24691] |
Tue, 17 April 2001 11:45   |
John-David T. Smith
Messages: 384 Registered: January 2000
|
Senior Member |
|
|
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.
*cough*
<REITERATE>
IDL> print, double('5.4.1') gt 5.4
0
</REITERATE>
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
distribution.
<SNIP>
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.
...
<SNIP>
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.
JD
|
|
|