私はperlでこれを行うだけでスカラーを補間できることを知っています:
"This is my $string"
しかし、評価する実際のPerlコードを補間できる方法があるかどうか疑問に思っていますか?私が欲しいもののアイデアは、ルビーの文字列で見ることができます:
"5 + 4 = #{5 + 4}"
そして、の間にあるものは何でも評価し{}
ます。
Perlでこれを行う方法を知っている人はいますか?ありがとう!
私はperlでこれを行うだけでスカラーを補間できることを知っています:
"This is my $string"
しかし、評価する実際のPerlコードを補間できる方法があるかどうか疑問に思っていますか?私が欲しいもののアイデアは、ルビーの文字列で見ることができます:
"5 + 4 = #{5 + 4}"
そして、の間にあるものは何でも評価し{}
ます。
Perlでこれを行う方法を知っている人はいますか?ありがとう!
次のトリックを使用できます。
"5 + 4 = @{[ 5 + 4 ]}"
または、次を使用できますsprintf
。
sprintf("5 + 4 = %d", 5 + 4);
これらのいずれかにより、目的の文字列が生成されます。sprintf
補間された値のタイプをいくらか制限できるので、間違いなく、最初のものより安全です。ただし、最初のものは、精神的にはあなたが望むものに近いものです。
文字列で計算を補間する場合は、次の3つのことを実行できます。
を使用し@{[]}
ます。3番目の括弧内に、必要な式を配置します。
を使用し${\ do {}}
ます。式を2番目の中括弧内に配置します。
単純な文字列連結を使用します。$targetstring = "$string1".func()."$string2"
ここでfunc()
、動的コンテンツが含まれます。
print "5 + 4 = ", 5 + 4;
引用符の外に移動するだけです。引用符で囲むように強制することに意味はありますか?
printf
たとえば、次のコマンドを使用して、もう少しフォーマットを行うことができます。
printf "5 + 4 = %s\n", 5 + 4;
あなたが使用することができますeval
:
eval('$a = 4 + 5');
念のために言っておきますが、eval
慎重に使用する必要があります。かなり危険です。