環境変数を評価し、結果を変数に設定したいと思います。
$x=eval($ENV{EDITOR});
print $x;
出力:
/bin/vi
正常に動作します。
環境変数QUOTEを\'に設定して、同じことを試してみると、次のようになります。
$x=eval($ENV{QUOTE});
print $x;
出力:
(なし)
$@ set to: "Can't find a string terminator anywhere before ..."
evalはスクリプトを呼び出して最後の値を返すためにも使用されるため(非常に便利)、単純に設定したくない$x=$ENV{QUOTE};
ので、eval()を使い続けたいと思います。この方法で評価されたすべての環境変数は、私が別の場所に設定しているため、この方法で評価された環境変数への悪意のあるアクセスについては心配していません。
提案?