Re: screwy system variables !? [2] [message #6605 is a reply to message #6602] |
Thu, 25 July 1996 00:00   |
chase
Messages: 62 Registered: May 1993
|
Member |
|
|
>>>> > "Chad" == Chad Trujillo <trujillo@xnmusc.mit.edu> writes:
In article <4t71d3$lhe@senator-bedfellow.MIT.EDU> trujillo@xnmusc.mit.edu (Chad Trujillo) writes:
Chad> (Had some posting problems on the first one)
Chad> It seems like I can't actually create new system variables in a
Chad> function or program and use them later in that same function/program.
Chad> For example, I have the following program (in file tester.pro):
>> pro tester
>> defsysv, "!tester", 222
>> print, !tester ;this line directly refers to !tester
>> end
Chad> When I try to compile/run it, I get the following error (unless I
Chad> manually define !tester at the command line first):
>> % Not a legal system variable: !TESTER.
The problem is that IDL creates references to variables at compile
time, but the system variable !tester does not exist at compile time.
It will not exist until the defsysv is executed at runtime.
You will either need to perform the defsysv in another procedure that
runs before this one is compiled or, as suggested by someone else, use
an execute() statement wherever you reference the !tester (effectively
execute() delays compilation until run time).
Chris
--
===============================
Bldg 24-E188
The Applied Physics Laboratory
The Johns Hopkins University
Laurel, MD 20723-6099
(301)953-6000 x8529
chris.chase@jhuapl.edu
|
|
|