]> 2011-05-09 23:05:33 23456 ABC XYZ 0 -118 -1.5 7.5 #### 1 0 3.5 23458 SOS FML 0 -116 -1.5 7.5 1 0 3.5 #### #!/usr/bin/perl my $foo_datum; my $unique_id; my $bar_number; my $good_info; my $xml_source = XMLin($xml_file, forcearray => [ qw (thing foo bar bazs) ], keyattr =>[ ]); foreach my $thing_loop (@{$xml_source->{'things'}->{'thing'}} ) { $unique_id = $thing_loop->{'unique_identifier'}; foreach my $foo_loop (@{$thing_loop->{'foos'}->{'foo'}} ) { $foo_datum = $foo_loop->{'foo_datum'}; } foreach my $bar_loop (@{$thing_loop->{'bars'}->{'bar'}} ) { $bar_number = $bar_loop->{'bar_number'}; $good_info = $bar_loop->{'good'}->{'good_info'}; } # Compare $foo_datum, $bar_number and $good_info with what's in # the database. } #### my @unique_ids = (23456, 23458); my $xml_source_key = XMLin($xml_file, forcearray => [ qw (thing foo bar bazs) ], keyattr =>[ 'unique_identifier' ]); foreach my $unique_id (@unique_ids) { foreach my $bar_loop ( @{$xml_source_key->{'things'}->{'thing'}->{$unique_id}->{'bars'}->{'bar'} } ) { $bar_number = $bar_loop->{'bar_number'}; $good_info = $bar_loop->{'good'}->{'good_info'}; # Do something with $bar_number, $good_info and a database } }