How exactly is it "crashing your script"? Is it providing any error message? Any output?
Edit: I just noticed that you're passing "$words", but then operating on "$word", which is probably your error. Granted you probably cut and paste what I wrote (so the error is actually mine -- sorry!). Change "$word" to "$words".
You should also have:
at the top of your script (maybe you do, and that's why your script was failing).
If not, add them; they'll tell you what you're doing wrong in exactly this type of situation.
substr+lc crypt(qw $i3 SI$),4,5