in reply to Regexp not performed when presented utf-8 data

Try changing your open line from

open MENU, "<menu.htm";
to
open MENU, "<:utf8", "menu.htm";
Otherwise Perl might well be treating the text read from that file as something else.

Update: If what you meant is that the file being read in from standard input is UTF-8 encoded then what you need is

binmode STDIN, ":utf8";
This presumably won't work if you're using multiple files through the magic filehandle. Actually, just to be safe, maybe you shouldn't use the magic filehandle.