Stefan: Hash Probleme nach Einlesen mit XML::Simple

Beitrag lesen

Hallo,
ich lese ein XML File mit XML::Simple XMLin() ein. Das erzeugt mir ein großes Hash mit lauter kleinen Hashs ;-)
Will ich ein bestimmtes Element lesen, so tue ich das z.B. mit

if (defined %{$xml->{'options'}->{'size'}})
{
  # yes, hashref: write ''
  print "var size = "";\n";
}
else
{
  # no, skalar: assign value
  print "var size = ",$xml->{'options'}->{'size'},";\n";
}

Hat size im XML File einen Wert (<size>3.456</size>), wird dieser mit print ausgegeben, ist der Wert "leer" (<size></size>) (XMLin erzeugt dann eine hashreferenz, die ich mit 'defined' erkennen will) dann wird '' zugewiesen.

Funktioniert lokal alles super unter WinXP, Apache, strict refs

Leider nicht auf dem Server (Unix, Netscape Webserver, ...). Dort funktioniert das Abfangen der Hashreferenz wenn size leer ist, aber wenn ein Wert drin steht, dann kommt die Fehlermeldung

Can't use string ("3.456") as a HASH ref while "strict refs" in use at ... für die Zeile, in der ich mit 'defined' die Hashreferenz erkennen will.

Was mache ich falsch, und warum bekomme ich diese Fehlermeldung nicht bei mir, wenn ich doch strict refs eingeschaltet habe?

Gruß,
Stefan