You are opening a file, reading it's contents, and then altering those contents in memory. Your not operating on the file directly nor are you writing the changes back to the file. Solving these problems is left as an exercise to the reader, but your code shows enough competence that I imagine you'll fix it quickly. A suggestion though - if I were in this position, unless the filehandle object needed to stick around for other reasons (or maybe even if it did) I'd prolly use Tie::File. Check it out on the CPAN.
Light a man a fire, he's warm for a day. Catch a man on fire, and he's warm for the rest of his life. - Terry Pratchet