perl 怎么判断一个字符是指定字符

就比如#!/usr/bin/perl-wusestrict;my($line,$result);print"Enteranemptylinetoquit.";OUTERL... 就比如
#!/usr/bin/perl -w
use strict;
my($line, $result);
print "Enter an empty line to quit. ";
OUTERLOOP:
while (1) {
print "Enter your expression and type [ENTER] : ";
$line = <STDIN>;
chomp $line;
last if not $line;
INNERLOOP:
foreach (split(//,$line)) {
if (!($_==(0|1..9|'+'|'-'|'*'|'/'))){
print "Input error!";
last OUTERLOOP;
}
}
$result = eval "$line";
print "\tError : $@\n" if $@;
print "\tResult: $result\n" if not $@;
}
1;
内循环里想判断如果输入不是数字、+-*/ 就退出外循环报错 但是这样写貌似跑起来会有错,好像自动把‘+’‘-’之类的算成ASCII码?
比如报错中第一行说Argument "+" isn't numeric in bitwise or (|) at 062eval .pl line 1, <STDIN> line 1.
应该怎么改?求高人指点~~
展开
 我来答
计名pS
2011-10-10 · TA获得超过3649个赞
知道大有可为答主
回答量:4189
采纳率:0%
帮助的人:2178万
展开全部
" + - * / " 的类型为: String, $str eq '*'
数字才是,$num == 9

foreach (split(//,$line)) {
unless (/^ [0-9 \+ \* \/ -]+$ /x) { # No space allowed, as 3 + 2
print "Input error!";
last OUTERLOOP;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式