下面这段代码如果用map,如何写会正确

下面这段代码如果用map,如何写会正确

#        my @part = split/Hairpin loop/,$_;
#        foreach my $key (@part) {
#                $key =~ s/.*Multi-loop\n//sg;
#               
#        }

我写的是
my @part = map {s/.*Multi-loop\n//sg} split(/Hairpin loop/,$_);
或者
my @part= map {$_ =~ s/.*Multi-loop\n//sg} split(/Hairpin loop/,$_);
均不正确
问题在于  正则 的返回值

如果正则是=~ , 那么返回匹配字符串
如果正则是=~ s, 那么返回成功次数

my $str = 'aa-aa-aa';
print map({ $_ =~ /a/g }   split(/-/, $str)), "\n";  ### aaaaaa
print map({ $_ =~ s/a//g } split(/-/, $str)), "\n"; ### 222

恩。。返回不是需要的,这样好了
map {s/.*Multi-loop\n//sg} my @part = split(/Hairpin loop/,$_);
@part应该就是你想要的
不过,这样写有必要吗?看着好恐怖
分2步,写个my @part =split(...)不是挺好
受教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
感谢楼上两位。