3

次のコード サンプルを見てください。

$ct=5;
print "hey $ct+1";

評価されると、これは次を返します。

hey 5+1

ただし、コードを返そうとしています:

hey 6

これを正しく行うために行うことができる何らかの評価呼び出しがあるかどうか、または構文を少し変更する方法があるかどうか、誰かが知っていますか? 私は簡単にできることを知っています:

$dum=$ct+1;
print "hey $dum";

しかし、私が示しているのは、より複雑なものの単純なバージョンです。この小さな例を正しく動作させることができれば、より大きな問題は解決されます。ありがとう。

4

3 に答える 3

9

Perl の加算演算子を実行したいのですが、コードには Perl 文字列リテラルしか含まれていません。あなたがしたい

print "hey ", $ct+1;

変数に Perl ソース コードがあり、それを実行したい場合は、Perl パーサーとコンパイラを呼び出す必要がありますeval EXPR

于 2012-07-17T17:20:56.870 に答える
8

もう 1 つの方法は、定型印刷です。

my $ct = 5;
printf "hey %s", $ct+1;
于 2012-07-17T17:21:42.063 に答える
2

これは一種の中間Perlですが、式を参照に入れて、二重引用符で囲んで逆参照することができます。

print "hey @{[$ct+1]}";
print "hey ${\($ct+1)}";

このようなコードは読みにくく、Perlは初心者には不向きであるという評判があります。そのため、引用符から式を抽出するよりもお勧めしません。

print "hey ", ($ct+1);
print "hey " . ($ct+1);
于 2012-07-17T17:44:38.927 に答える