my $filenm = "urpmi-parallel-ssh-4.0-20.1mdk.noarch.rpm"; if ($filenm =~ m/((\w+)-)+/){ ($arr,undef,$var70,undef,$var97) = split (/((?<=[a-z])\.(?=[a-z]))/,$'); local $str57 = $&; $str57 =~ s/-$//; print "[$str57]\n"; print "[$arr]\n"; print "[$var70]\n"; print "[$var97]\n"; } __END__ [urpmi-parallel-ssh] [4.0-20.lmdk] [noarch] [rpm]