If it helps, I find the
<wbr /> tag rather useful, not for truncating email addresses, but giving a browser clues where it can put line breaks into a string if something is too long (e.g. in a table).
So you could do something like:
$email =~ s!(\.)!<wbr />$1!g;
I only mention it because I've found myself doing this a lot..