--- google/trunk/lib/CWMP/Request.pm 2007/11/25 13:35:27 226 +++ google/trunk/lib/CWMP/Request.pm 2007/11/25 18:51:26 227 @@ -126,7 +126,14 @@ =cut -my $parser = XML::Rules->new( +sub parse { + my $self = shift; + + my $xml = shift || confess "no xml?"; + + $state = {}; + + my $parser = XML::Rules->new( # start_rules => [ # '^division_name,fax' => 'skip', # ], @@ -138,16 +145,14 @@ 'urn:dslforum-org:cwmp-1-0' => '', }, rules => $rules, -); + ); -sub parse { - my $self = shift; + warn "## created $parser\n"; - my $xml = shift || confess "no xml?"; + $parser->parsestring( $xml ); - $state = {}; + undef $parser; - $parser->parsestring( $xml ); if ( my $trigger = $state->{_trigger} ) { warn "### call_trigger( $trigger )\n"; $self->call_trigger( $trigger, $state );