Firstly thanks for all your responses and for the help that you guys have given me.
I slept on what you gave me and I realised that the perl only searches for single keywords, however my keywords are sometimes several words long.
Just to let you know what my program does, it searches for non-ansi sql within source code. so the config file for my program is a list of oracle specific sql to search for. an example of a keyword is ALTER TABLE etc. I need to find all occurences of this in a file. the other thing that the code has to do is highlight multiple occurences of keywords in the same line
this is why the code you gave me doesn't work as it goes through and searches word by word for each line