加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

获取perl字符串计算结果

发布时间:2020-12-15 23:29:05 所属栏目:大数据 来源:网络整理
导读:如果一个字符串表示如下 $str =“5 2-1”; 我想从该字符串中获取计算结果. 如何转换为标量来计算? 谢谢. 解决方法 最简单的方法: print eval('5+2-1'); 但这不安全: print eval('print "You are hacked"'); 您需要在评估之前检查字符串. 您也可以使用来自
如果一个字符串表示如下
$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 );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读