web-dev-qa-db-ja.com

Perl文字列補間は式の評価を実行できますか?

質問に関連: Perlで評価された式に置き換えるにはどうすればよいですか?

Perlでは、Rubyのように行う方法はありますか?

$a = 1;
print "#{$a + 1}";

2を印刷できますか?

36
nonopolarity

これについては、Perlにも同様の省略形があります。

$a = 1;
print "@{[$a + 1]}"

これは、[]は、1つの要素(計算結果)を含む配列への参照を作成し、次に@{}は配列を逆参照し、文字列補間の内部で配列の各要素を順番に出力します。 1つしかないため、1つの要素を出力するだけです。

62
Greg Hewgill

GregHewgillが言及した@{[ EXPRESSION ]}トリックを使用できます。

Interpolation モジュールもあります。これを使用すると、式の評価に加えて、補間する値(HTMLエンティティのエンコードなど)に対して任意の変換を行うことができます。

10
cjm