我正在从文件中读取。基于一列中的值,我想为其分配我自己的类/标签。
这些正则表达式:
'LTR*','MLT*','MST*' ...属于 HERV 类。
'Charlie*','Looper*' ... 属于类 DNA
现在我有两个数组,一个带有正则表达式,一个带有各自的类:
my @array = map { qr{$_} } ('Alu*', 'HERV*', 'Charlie*' ...
my @classes = ('Alu', 'HERV', 'DNA', 'LINE' ...
这样我就知道如果我的线与 Charlie* 匹配,它属于类 DNA。
总而言之,对于文件的每一行,我都在循环整个数组并寻找匹配项:
for my $i (0 .. $#array) {
if ($type =~ m/$array[$i]/) {
my $class=$classes[$i];
}
}
当然,这不是太聪明。最好说:“这组正则表达式属于这个类”,这表明使用哈希。
但是,我认为循环所有行非常不方便,而不是 hashmap 的所有键,然后是某些键的所有值,并且当匹配时,使用键作为结果类/标签。这是一个好的解决方案吗?
非常感谢你。