What I want to do is get to each product and substrate name for a given reaction and print it out. Here is what I would like to do:'reaction' => [ { 'substrate' => { 'name' => 'cpd:C00084' }, 'name' => 'rn:R00710', 'product' => { 'name' => 'cpd:C00033' }, 'type' => 'reversible' }, { 'substrate' => [ { 'name' => 'cpd:C00068' }, { 'name' => 'cpd:C00022' } ], 'name' => 'rn:R00014', 'product' => { 'name' => 'cpd:C05125' }, 'type' => 'irreversible' },
It works for the first product and substrate, but for the second one, since there are now TWO substrates, it doesn't seem to pick it up. The fact that this doesn't work tells me that I am wrong somewhere, but I can't for the life of me figure it out. The error I get is: Bad index while coercing array into hash Any help will be much appreciated!! Thanks in advance. Cheers, Bioswami$data = $xml->XMLin($input_file); foreach $g (@{$data->{reaction}}) { foreach $h ($g->{substrate}){ $temp1 = $h->{name}; foreach $i ($g->{product}->{name}){ $temp2 = $i->{name} print "$temp1 -- $temp2\n"; } ] }
In reply to XML parsing Help.. by bioswami
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |