in reply to HTML image tag stripping

Your error is because you haven't declared $i. Your substitution expression will also cause problems - you only need to put the modifiers at the very end so use s/<IMG\s+([^>]+)>//ig rather than s/<IMG\s+([^>]+)>/ig//ig
To achieve what you actually want, you don't need to worry about storing an array.
open FH,'filename' or die "Failed to open filename - $!"; while (<FH>) { s/<IMG\s+([^>]+)>//ig; print; }
That will run through each line of the file, strip any img tags and then print the line out again.
This won't work with an image tag split across multiple lines. In that case you will be better off using something like HTML::Parser