3

私はperlでこれを行うだけでスカラーを補間できることを知っています:

"This is my $string"

しかし、評価する実際のPerlコードを補間できる方法があるかどうか疑問に思っていますか?私が欲しいもののアイデアは、ルビーの文字列で見ることができます:

"5 + 4 = #{5 + 4}"

そして、の間にあるものは何でも評価し{}ます。

Perlでこれを行う方法を知っている人はいますか?ありがとう!

4

4 に答える 4

12

次のトリックを使用できます。

"5 + 4 = @{[ 5 + 4 ]}"

または、次を使用できますsprintf

sprintf("5 + 4 = %d", 5 + 4);

これらのいずれかにより、目的の文字列が生成されます。sprintf補間された値のタイプをいくらか制限できるので、間違いなく、最初のものより安全です。ただし、最初のものは、精神的にはあなたが望むものに近いものです。

参考文献:

于 2012-07-31T18:43:08.703 に答える
2

文字列で計算を補間する場合は、次の3つのことを実行できます。

  1. を使用し@{[]}ます。3番目の括弧内に、必要な式を配置します。

  2. を使用し${\ do {}}ます。式を2番目の中括弧内に配置します。

  3. 単純な文字列連結を使用します。$targetstring = "$string1".func()."$string2"ここでfunc()、動的コンテンツが含まれます。

于 2012-07-31T18:58:59.407 に答える
1
print "5 + 4 = ", 5 + 4;

引用符の外に移動するだけです。引用符で囲むように強制することに意味はありますか?

printfたとえば、次のコマンドを使用して、もう少しフォーマットを行うことができます。

printf "5 + 4 = %s\n", 5 + 4;
于 2012-07-31T18:44:14.723 に答える
-1

あなたが使用することができますeval

eval('$a = 4 + 5');

念のために言っておきますが、eval慎重に使用する必要があります。かなり危険です。

于 2012-07-31T18:40:07.223 に答える