我正在尝试做一个计算器(细节在这个例子中不重要)。我需要检查一个字符是否用于操作匹配预定义的操作之一(+,-,/和 *)和单独的操作(neg,abs)。我不是很擅长正则表达式,但这里是我尝试:
if($operation =~ /[+\-*\/]/){ ... }elsif($operation =~ m/(neg|abs)/){ ... }
程序只是在理论上应该做操作的时候跳过这些。提前感谢!
js81xvg61#
我可能会把这些放在一个hash中,然后用exists检查,如果hash值是你想要的操作,那就更好了:
exists
my $things = ( '+' => sub ($n, $m) { $n + $m }, ... 'neg' => sub ($n) { -$n }, 'abs' => sub ($n) { abs($n) }, }; if( exists $operations{$op} ) { $operations{$op}->(@operands); } else { ... }
1条答案
按热度按时间js81xvg61#
我可能会把这些放在一个hash中,然后用
exists
检查,如果hash值是你想要的操作,那就更好了: