$t = "C++, Java; JavaScript, c++1, java; Oracle. Perl - power.";
$t =~ s/\b\Qc++\E(?=\W)/!!!Perl!!!/ig;
print $t, "\n";
\b - граница слова
\w - алфавитно-цифровой символ (любая буква, цифра или символ подчеркивания)
\W - любой символ, кроме букв, цифр и символа подчеркивания
perl считает границей слова точку, расположенную между \w и \W, независимо от того, в каком порядке следуют эти символы.