in reply to Re^4: XML::Twig and threads
in thread XML::Twig and threads [solved]
Hello, BrowserUK.
I see. Example XML is just 613KB.
Copying Twig object is terribly slow. I guess Data::Dumper or dclone of storable will not do any good, because it is just huge.
Without copy, it is very fast.for ( $someData->children_copy( 'managedObject') ){ handle_managedObject($t, $_); }
So, I vaguely imagined rewriting managedObject sub using regex, for example ...for ( $someData->children( 'managedObject') ){ handle_managedObject($t, $_); }
my ($t, $element)=@_;
# create rewrite rules using Twig
my %rewrite_rules =(
q/name="name"/ => "some value",
);
#replace with regex
my $buffer=$element->sprint; #get plain text of element
for (keys %rewrite_rules){
$buffer =~ s/ $_ (.*?) > .*? (?=<)
/${_} ${1} $rewrite_rules{$_}/sx;
}
#just print out without changing $element
print $fh $buffer;
I will do like this, if I were.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: XML::Twig and threads
by BrowserUk (Patriarch) on Nov 29, 2012 at 02:49 UTC | |
by tye (Sage) on Nov 29, 2012 at 03:15 UTC | |
by grizzley (Chaplain) on Nov 29, 2012 at 13:18 UTC |