Re: something like perl's 'require 5.4' [message #24683 is a reply to message #24682] |
Tue, 17 April 2001 14:41   |
Paul van Delst
Messages: 364 Registered: March 1997
|
Senior Member |
|
|
JD Smith wrote:
>
> Paul van Delst wrote:
>>
>> wot about
>>
>> IDL> print, double('5.4.1') ge 5.4d0
>> 1
>>
>
> Because it's exactly the same! Yes it's ge, but is it gt?
>
> IDL> print, double('5.4.1') gt 5.4d0
> 0
>
> IDL> print, double('5.4.1') eq 5.4d0
> 1
>
> No it's not, it's eq. Same problem. So use this if you don't care
> about the last digit and don't want to be open about it (it's not
> exactly obvious this is the case). Use the string compare method
> otherwise.
>
>> Doesn't assuage your other concerns regarding the significance of the last digit however.
>> I use comparisons like the above for code that contains BREAK, CONTINUE, SWITCH, etc
>> statements. Or similar for the version in which pointers and objects were introduced (5.2?
>> can't remember).
>
> The problem here is you'll not err cleanly... unknown control statements
> will cause compile errors. Not a lot that we can do about this.
Nuh-uh. They're interpreted as user functions/procedures.
IDL> $more testit.pro
pro testit
for i = 0, 10 do begin
if ( i eq 5 ) then break
endfor
end
IDL> print, !version
{ mipseb IRIX unix 5.3 Nov 11 1999}
IDL> .run testit
% Compiled module: TESTIT.
IDL> testit
% Attempt to call undefined procedure/function: 'BREAK'.
% Execution halted at: TESTIT 5 /modishome/paulv/tmp/testit.pro
% $MAIN$
So:
IDL> $more testit.pro
pro testit
if ( double( !version.release ) lt 5.4d0 ) then begin
message, 'Need IDL 5.4 to use this procedure', /continue
return
endif
for i = 0, 10 do begin
if ( i eq 5 ) then break
endfor
end
IDL> .run testit
% Compiled module: TESTIT.
IDL> testit
% TESTIT: Need IDL 5.4 to use this procedure
IDL>
Pre-5.2, nothing says I can't have a function/array called PTRARR or PTR_NEW (or the OBJ
equivalent).
paulv
--
Paul van Delst A little learning is a dangerous thing;
CIMSS @ NOAA/NCEP Drink deep, or taste not the Pierian spring;
Ph: (301)763-8000 x7274 There shallow draughts intoxicate the brain,
Fax:(301)763-8545 And drinking largely sobers us again.
paul.vandelst@noaa.gov Alexander Pope.
|
|
|