http://www.perlmonks.org?node_id=99425


in reply to Perl and your environment

There are a couple problems with what you have.
  1. I'm pretty sure you mean to be using a concatentation operator, which in Perl is .. The & you are using is a bitwise AND operator.
  2. Using `` causes variable interpolation, so your script is trying to interpolate a variable called $USER. Using the {} has no bearing on variable interpolation the way you are using it. You have to escape the $ with a \
  3. The return value you will get from the `` will have a newline attached to it. You'll need to chomp that.

After all that you should come with something like this:

chomp($user = `echo \$USER`); $TESTVAL = "~" . $user . "/foo";

Of course, the methods the other monks posted are probably a better idea than this. I'm trying to show you how to properly use the operators you chose.

Hope that helps.

Amel - f.k.a. - kel