my(undef,$numcount,undef,undef,undef,undef,undef) = split /###/ => ${[map{$_->[1]} sort{$b->[0] <=> $a->[0]} map{[/^$gr2\#\#\#(\d+)\#\#\#/,$_]} grep {/^$gr2\#\#\#(\d+)\#\#\#/} @m2]}[0];
пока понял, что надо в самом начале грепнуть по подстроке... наверное это уже ночь =(