如果一个字符串如下所示
$str = "5+2-1";
我想从该字符串中获取计算结果。
如何转换为标量来计算它?
谢谢。
最简单的方法是:
print eval('5+2-1');
但这并不安全:
print eval('print "You are hacked"');
您需要先检查字符串eval
它。
您也可以使用数学::表达式来自 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 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)