Hier noch mal genau was am Ende raus kommen soll:
<irgendwas/> zu $ref->{irgendwas} = undef;
<irgendwas></irgendwas> zu $ref->{irgendwas} = '';
Das geht nicht, in XML sind <irgendwas/> und <irgendwas></irgendwas> semantisch identisch; der Parser darf sie nicht auseinanderhalten.