in reply to XML Parser and certain nodes to a hash

open (INPUT, "<:utf8", "w.xml") or die "Can't open";

You're not printing $! when attempting to open files, if you include it you'll find out why things fail:

open (INPUT, "<:utf8", "w.xml") or die "Can't open w.xml: $!";