Toon posts:

[PERL] Checken of een variabele een HASH is.

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo

Ik heb een scriptje gemaakt waarbij gebruik wordt gemaakt van XML::Simple. Er worden een aantal tags uitgelezen uit een .xml file en alles gaat goed zolang er maar een waarde in die tag staat. Als die tag echter geen waarde heeft, dan krijg ik in de variabele een HASH waarde.

bv.
<tag1>test</tag1>
<tag2></tag2>

Dan gebruik ik XML::Simple om tag 1 en 2 in een variabele te krijgen.

resultaat:
$tag1= "test1"
$tag2= HASH(0x8132a60)

Hoe kan ik nu checken of een variabele een HASH waarde bevat? Zodat ik weet wanneer een waarde leeg is.

Verwijderd

Een HASH-waarde? Ik weet eerlijk gezegd niet wat dat is. Maar wat in ieder geval kan is een regular expression loslaten op wat hier staat. En met de exists-functie kun je checken of een bepaalde hash-waarde bestaat.

Verwijderd

Topicstarter
Defined en exists heb ik al geprobeerd, maar ik denk niet dat je deze kunt gebruiken aangezien de variable altijd al bestaat en gedefinieerd is.

Dus $tag1 is ofwel tekst ofwel een HASH verwijzing, als ik exists($tag1) neem, dan krijg ik dus in beide gevallen een true waarde.

  • Michael
  • Registratie: Maart 2000
  • Laatst online: 20-07 17:52
Probeer het is met ref()

ref( $tag2 ) zal 'hash' returnen waarna je if( ref($tag2) eq 'hash' ) { } kan doen

zie perldoc -f ref

Verwijderd

Topicstarter
Thx Michael, het werkt!