... my $global_db; my $twig = new XML::Twig( TwigRoots => #twig will be created only for Entrezgene_unique-keys elements { "Entrezgene_unique-keys" => 1 }, TwigHandlers => #Gene-track element will be called when each player element has been parsed { "Dbtag_db" => \&dbxref, #here $twig->purge forbitten, because the data of the twig are needed for &generef "Object-id_id" => \&dbid } ); ... sub dbxref { my ($twig, $dbxref) = @_; my $db = '??'; if ($dbxref->text) { $db = $dbxref->text; } $global_db = $db; $twig -> purge; $dbxref -> delete; } sub dbid { my ($twig, $dbid) = @_; my $id = '??'; if ($dbid->text) { $id = $dbid->text; } print "$global_db - $id\n"; $twig -> purge; $dbid -> delete; }