4
如果一個字符串表示如下 $ str =「5 + 2-1」; 我想從該字符串得到計算結果。 我如何轉換爲標量來計算這個? 謝謝。獲取perl字符串計算結果
如果一個字符串表示如下 $ str =「5 + 2-1」; 我想從該字符串得到計算結果。 我如何轉換爲標量來計算這個? 謝謝。獲取perl字符串計算結果
如果您確定該字符串不包含任何惡意代碼,您可以使用eval將其內容視爲Perl代碼。
#!/usr/bin/perl
use strict;
use warnings;
my $string = "5+2-1";
print eval($string);
#print 6
最簡單的方式做到這一點:
print eval('5+2-1');
,但它不是安全:
print eval('print "You are hacked"');
您需要eval
前檢查字符串它。 您也可以使用Math::Expression模塊或cpan的許多其他模塊:
#!/usr/bin/perl
use strict;
use warnings;
use Math::Expression;
my $env = Math::Expression->new;
my $res = $env->Parse('5+2-1');
# my $res = $env->Parse('print you are hacked'); # no math expression here
print $env->Eval($res);