我在Perl中遇到有关算术表达式的问题。
我已经编写了代码,但我无法填充eval函数。
示例:
>2+4
6
另一个例子:
>8-2*2
4
这是我的程序
#!/usr/bin/perl
print ">";
while (<>) {
eval(---------);
print "\n>";
}
答案 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>";
}