1
有沒有辦法將string
變量插入code
? 這就是我想要做的,當然它甚至不會編譯。Perl 6使用字符串編碼
my $cmd = " + 5 ";
my $a = 3;
$a = $a { $cmd };
say $a;
有沒有辦法將string
變量插入code
? 這就是我想要做的,當然它甚至不會編譯。Perl 6使用字符串編碼
my $cmd = " + 5 ";
my $a = 3;
$a = $a { $cmd };
say $a;
你可以嘗試使用EVAL
,但請注意,使用EVAL
是危險的,如果你沒有在那個將要計算的字符串完全控制(例如,考慮這樣的東西EVAL 'shell "rm -rf *"'
):
use MONKEY-SEE-NO-EVAL;
my $cmd = " + 5 ";
my $a = 3;
$a = EVAL(EVAL '$a ~ $cmd');
say $a;
輸出:
8
注:
行$a = EVAL(EVAL '$a ~ $cmd')
將串聯運算符合併到要評估的字符串中。如果沒有必要,你可以簡化爲$a = EVAL($a ~ $cmd)
(如@ W4anD0eR96所示)
謝謝!是的,我明白了,這真的很危險...... –
爲什麼'$ cmd'是一個字符串呢?它不應該是一個功能嗎? – melpomene
當然,我明白如何用'sub'來做到這一點。這個問題(可能是一個愚蠢的問題)是,是否可以用'string'來做到這一點。 –
'我的$ cmd = * + 5;'更好。那麼你可以做'$ a。= $ cmd;' –