Pearte has asked for the wisdom of the Perl Monks concerning the following question:
Well I have a chunk of code that I didn't write: (endline)
setenv RAP_WP_TOP_DIR /jdev/morse/shared (endline)
setenv WP_DEFAULT_CONFIG_DIR /jdev/morse/shared/config/wp_default (endline)
setenv WP_LC_CONFIG_DIR /jdev/morse/shared/config/jnu_lc (endline)
setenv WP_ND_CONFIG_DIR /jdev/morse/shared/config/jnu_nd (endline)
setenv WP_SD_CONFIG_DIR /jdev/morse/shared/config/jnu_sd (endline)
(endline)
I can only assume from the context that this is similar to
a filehandle and that these "filehandles" can be passed
between diffent scripts.
I have three questions:
One... Is this assumption correct?
Two... If so, what kind of rules regulate it's use? In other
words, what do I have to do to let these other scripts see it?
Three.. If my assumption is incorrect, what is this all about?
Thanks,
Pearte
PS- I checked two O'Reilly's, no dice.
PPS- I would love to know who to format text in this silly box.
RE: setenv
by steveAZ98 (Monk) on Jul 25, 2000 at 01:06 UTC
|
setenv sets enviorment variables in a unix system. I would assume it is in a file with a leading #!/bin/sh at the top. All it does is set these enviorment variables to the corrosponding filenames when it is run by the shell.
Your assumption is correct in that you can now access these vars from a perl script using %ENV
ie. $ENV{WP_DEFAULT_CONFIG_DIR}
On other systems you may have to set the enviorment vars with: export VAR=value
To format code use
<code> and </code>
The rest can be formatted with standard HTML.
HTH
| [reply] |
|
VAR="this is the value of the variable"
export VAR
</offtopic nitpicking>
-Mark | [reply] [d/l] |
|
Now that we're nitpicking....
export VAR="foo? bar! baz..."
update: this is actually a bash thingy (or ksh. thanks tye!)
-- ar0n
| [reply] [d/l] |
|
Re: setenv
by fundflow (Chaplain) on Jul 25, 2000 at 01:39 UTC
|
The enviromnent variables are part of the environment supplied
by the operating system, just like memory and disk access.
(This is true for Unixes, i don't know about DOS)
Any program has a mechanism can set these variables in its
memory space. These values get transfered to new children
via the fork() system call. This is the reason that you can set
such variable in bash/csh/tcsh etc and then run a program
(i.e. fork) which can see these variables.
If memory serves, the C library has the info about it.
The perl way is $ENV{WHATEVER} as was mentioned above.
Cheers :) | [reply] |
|