to your first problem: mode-compile
ships with XEmacs (which I use) but doesn't seem to be shipped with Gnu Emacs by default (at least not on my system and the (almost) latest download I have lying around. You can try http://www.tls.cena.fr/~boubaker/Emacs/ which seems to be the official download site, but I can't reach it right now.
Other than that there are old versions distributed in elisp-archives (search for mode-compile.el in your favorite search machine ;-) Or you may try the XEmacs version that may be on your system, already.
Once you downloaded it, follow the install instructions in that file. You may skip the byte-compiling which only improves speed, but you have to put the file in one of the directories that the variable load-path holds. Expand you load-path as you like:
As to your second question: Although I appreciate, like and do it myself I'd almost always prefer a well-tested and hopefully maintained piece of code from someone else to one quick written hack by myself. What would you do when the other code doesn't do what you want? Well, you'd done it already: get back to the Monastery and post a question. Whereas one could hope that the emacs and xemacs newsgroups and/or the cperl-mode and mode-compile maintainer might do a better job. But this is just my way of handling things. If the code works for you, go ahead and use it.
Ah, and just as a sidenote: you might try getting used to writing emacs-lisp-code. It's fun ;-)
One last: it's stefan k, not Stefan (but I admit that my sig is confusing here)
you begin bashing the string with a +42 regexp of confusion