The module which you should have a look at is
Algorithm::Diff originally written by
Dominus, now maintained by
bikeNomad. Included with this module are the example programs
diff.pl and
cdiff.pl, the latter of which produces a differential output suitable for use with patch.
Also have a look at the homepage for this module here.
perl -e 's&&rob@cowsnet.com.au&&&split/[@.]/&&s&.com.&_&&&print'