获取perl字符串计算结果

前端之家收集整理的这篇文章主要介绍了获取perl字符串计算结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果一个字符串表示如下
$str =“5 2-1”;
我想从该字符串中获取计算结果.
如何转换为标量来计算?
谢谢.

解决方法

最简单的方法

print eval('5+2-1');

但这不安全:

print eval('print "You are hacked"');

您需要在评估之前检查字符串.
您也可以使用来自cpan的Math::Expression模块或许多其他模块:

#!/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 );

猜你在找的Perl相关文章