Like this:
my $command_line = 'perl -pi.bak -e s/' . $search . '(?=,)/' . $replac
+e . '/g; CombineDie1Die2.txt';
# Add this ^^^^^
(See “Look-Around Assertions” in perlre#Extended-Patterns.)
By the way, there is another problem with your code: the command switch -pi.bak makes a backup of the target file each time a substitution is applied. This means that CombineDie1Die2.txt.bak ends up almost the same as CombineDie1Die2.txt (only the final substitution is omitted). This is almost certainly not what you want. It provides yet another reason to follow flexvault’s advice and remove the nested calls to Perl one-liners from within your script. Much better to re-cast the logic and use Perl’s substitution facilities, etc., directly, rather than invoking a new Perl interpreter millions of times!
Hope that helps,