我正在编写一个简单的Perl脚本,将程序集指令字符串转换为32位二进制代码.
我决定按类型处理翻译分组指令(ADD和SUB是R-Type指令等等),所以在我的代码中,我在做这样的事情:
my $bin = &r_type($instruction) if $instruction =~ /^(?:add|s(?:ub|lt|gt))\s/;
因为我想以相同的方式处理add,sub,slt和sgt.
我意识到,也许使用正则表达式可能是我应该做的任务的“过度”,可能是模式
/^(?:add|sub|slt|sgt)\s/
在这种情况下更好地使用正则表达式?
非常感谢.
除非你使用的是超过5.10的perl,否则简单的交替将会更好地运行(参见
here),所以没有理由尝试优化它.