sub binhyphen2 { my ($str) = @_; my ($first, $rest) = split /-/, $str, 2; return defined $rest ? map { ($first . $_, $first . '-' . $_) } binhyphen2($rest) : $first; }