r266@brr: dpavlin | 2007-11-25 19:50:35 +0100
[perl-cwmp.git] / lib / CWMP / Request.pm
index 6649688..51f70f3 100644 (file)
@@ -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 );