Hier noch mal genau was am Ende raus kommen soll:
<irgendwas/> zu $ref->{irgendwas} = undef;
<irgendwas></irgendwas> zu $ref->{irgendwas} = '';
Beides ist unless($ref->{irgendwas})
<irgendwas>abc</irgendwas> zu $ref->{irgendwas} = 'abc';
if($ref->{irgendwas})
tag nicht vorhanden zu keine ref vorhanden. Sodas ich mit "defined" prüfen kann.
oder besser mit exists
Struppi.