[EMAIL PROTECTED] wrote:

I am currently trying to write a Perl program in a Solaris 9
environment
I am trying to process a list of variables with UNIX environment
variables embedded in them of the form
$dir_to_check = "$ENV_VAR1/some_dir/$ENV_VAR2/another_dir";
and I am trying to find if another_dir exists, so I have a line of
code that tries to do something like this:

if (-e $dir_to_check) { do some stuff }

which is not working even though the directory that I am checking for
does indeed exist.

Is there something simple that I am just missing, or is there a
problem with Perl not evaluating the environment
variables embedded in the path that I am check?

First of all, I think you need to add

 use strict;
 use warnings;

to the top of your program and declare all Perl variables with 'my'. This
will help you enormously to get your program working.

Also, try printing the value of $dir_to_check to see if it contains the
string you think it does.

Is this your exact code? Because $ENV_VAR1 etc are simply Perl variables
and aren't related to the values of the environment variables. Fortunately
for your programming convenience there is a built-in hash called %ENV which
does contain values from the enviroment. Write something like

 my $dir_to_check = "$ENV{varname1}/some_dir/$ENV{varname2}/another_dir";

and you should get the result you expect.

HTH,

Rob

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to