@array = qw( is an to for from); @strs =("is that true","this is from presentation","to create"); print join("\n",@strs); print "\nTO DELETE: [@array]"; print "\n------PROCESS--------\n"; foreach $str (@strs) { @words=split(/\s+/,$str); print "\nWords in [$str] are [". join(",",@words)."]"; foreach $word (@words) { if(grep {$word eq $_} @array) { print "\n\tDeleting [$word] from [$str]"; $str=~s/\b$word\b//g; } } } print "\n--------OUTPUT---------\n"; print join("\n",@strs); #### is that true this is from presentation to create TO DELETE: [is an to for from] ------PROCESS-------- Words in [is that true] are [is,that,true] Deleting [is] from [is that true] Words in [this is from presentation] are [this,is,from,presentation] Deleting [is] from [this is from presentation] Deleting [from] from [this from presentation] Words in [to create] are [to,create] Deleting [to] from [to create] --------OUTPUT--------- that true this presentation create