X-Git-Url: http://git.rot13.org/?p=perl-cwmp.git;a=blobdiff_plain;f=lib%2FCWMP%2FRequest.pm;h=51f70f3ae6416bb711c90b67388722a32020083d;hp=66496884ad64fae53eea0527bddef8e78840893b;hb=5ea6e09597af2a09a847b8973e30601811f52725;hpb=0096fa526f2bff8da10e3c81d14daa03efc6aef2 diff --git a/lib/CWMP/Request.pm b/lib/CWMP/Request.pm index 6649688..51f70f3 100644 --- a/lib/CWMP/Request.pm +++ b/lib/CWMP/Request.pm @@ -126,7 +126,14 @@ push @$rules, =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 @@ my $parser = XML::Rules->new( '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 );