在Perl中使用eval的算术表达式

时间:2014-05-19 19:46:00

标签: perl

我在Perl中遇到有关算术表达式的问题。

我已经编写了代码,但我无法填充eval函数。

示例:

>2+4

6

另一个例子:

>8-2*2

4

这是我的程序

#!/usr/bin/perl  

print ">";

while (<>) {   
  eval(---------);  
  print "\n>"; 
}

3 个答案:

答案 0 :(得分:2)

您可以选择输入以删除换行符并使用字符串eval。

#!/usr/bin/perl  
print ">" ;
while (<>) {
     chomp $_; 
     my $result = eval $_;  
     print "$result\n>"; 
}

想一想:当某人在提示时输入`rm *`会发生什么?

答案 1 :(得分:0)

您无法打印eval的结果。计算正在进行中,但你只是扔掉它并打印另一个提示。

这应该按照你的意愿行事。

#!/usr/bin/perl  

print ">" ;

while (<>) {   
  print eval, "\n>";  
}

答案 2 :(得分:0)

你可以这样写:

#!/usr/bin/perl 
print ">";

while (<>) {   
  print eval("$_");  
  print "\n>"; 
}