[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: get variables name
- Subject: Re: get variables name
- From: davidf(at)dfanning.com (David Fanning)
- Date: Wed, 5 Apr 2000 05:47:09 -0600
- Newsgroups: comp.lang.idl-pvwave
- Organization: Fanning Software Consulting
- References: <38EAF34E.B3D8555D@fz-juelich.de>
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:19141
R.Bauer (R.Bauer@fz-juelich.de) writes:
> I like to know the name of a variable which is submitted as input to a
> procedure
>
> e.g
>
> pro test,var
> help,var
> end
>
> a=1
> test,a
>
> Is it possible to get inside test the information that test was called
> with a.
My life is totally out of control at the moment, so I haven't
had the opportunity to write this up for my web page, but
here is part of a correspondence I recently received from
Paul Woodford, an IDL user, concerning the undocumented
ROUTINE_NAMES function:
routine_names(variables=0) - variable names at current level
routine_names(variables=1) - variable names at main level
routine_names(variables=2) - variable names at one level down from main
routine_names(variables=-1) - variable names at one level up from current
routine_names(variables=-2) - variable names at two levels up from current
But wait, that's not all... Take a look at how routine_names is used in
gethelp - you can use routine_names to actually fetch a variable from a
different level. For instance, if you have a variable named 'blah' one
level up from your current level, you can get it using
blah_here = routine_names('blah', fetch=-1)
Now, I would add a STRONGLY worded caution here. This routine is
COMPLETELY undocumented. I suspect there is a reason for that.
When you write your program relying on this behavior, and RSI
changes it in the next release (which is their prerogative with
a COMPLETELY undocumented function), then I don't want to hear
any whining! :-)
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155