我在Perl中有一个关于算术表达式的问题。
我已经写好了代码,但是我不能在eval函数中填充。
示例:
>2+4
6
另一个例子:
>8-2*2
4
这是我的程序
#!/usr/bin/perl
print ">";
while (<>) {
eval(---------);
print "\n>";
}
发布于 2014-05-20 03:54:44
您可以压缩输入以删除换行符,并使用string eval。
#!/usr/bin/perl
print ">" ;
while (<>) {
chomp $_;
my $result = eval $_;
print "$result\n>";
}
想想看:当有人在提示符下输入`rm *`
时会发生什么?
发布于 2014-05-20 03:52:46
您没有打印eval
的结果。计算已经完成,但您只是将其丢弃并打印另一个提示符。
这应该如您所愿。
#!/usr/bin/perl
print ">" ;
while (<>) {
print eval, "\n>";
}
发布于 2014-05-20 21:13:37
你可以这样写:
#!/usr/bin/perl
print ">";
while (<>) {
print eval("$_");
print "\n>";
}
https://stackoverflow.com/questions/23745977
复制相似问题