<div dir="ltr">Another patch, this one for XML/Compile/Dumper.pm itself because I&#39;m using XML::Compile::SOAP::Client. Not sure if you want to use this as-is, or just for compiled SOAP clients.<div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">--<br>Mark Gardner $ &lt;<a href="mailto:mjg@phoenixtrap.com" target="_blank">mjg@phoenixtrap.com</a>&gt;<br></div></div>
<br><div class="gmail_quote">On Wed, Apr 15, 2015 at 8:41 AM, Mark Gardner <span dir="ltr">&lt;<a href="mailto:mjg@phoenixtrap.com" target="_blank">mjg@phoenixtrap.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I&#39;ve attached a diff FWIW.</div><div class="gmail_extra"><span class=""><br clear="all"><div><div>--<br>Mark Gardner $ &lt;<a href="mailto:mjg@phoenixtrap.com" target="_blank">mjg@phoenixtrap.com</a>&gt;<br></div></div>
<br></span><div class="gmail_quote"><span class="">On Tue, Apr 14, 2015 at 12:35 PM, Mark Gardner <span dir="ltr">&lt;<a href="mailto:mjg@phoenixtrap.com" target="_blank">mjg@phoenixtrap.com</a>&gt;</span> wrote:<br></span><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I&#39;ve found a workaround until and unless I can get DDS fixed. If you replace that empty hash reference {} with a hash reference containing an empty list {()}, it compiles OK. I&#39;ve attached a reduced test case that demonstrates the difference.<div><br></div><div>Would you consider using this syntax as a workaround to XML::Compile::SOAP for now?</div><div><br></div><div><div><font face="monospace, monospace">        my @pairs = ( %{delete $data-&gt;{Header} || {()}}</font></div><div><font face="monospace, monospace">                    , %{delete $data-&gt;{Body}   || {()}});</font></div></div><div><br></div></div><div class="gmail_extra"><span><br clear="all"><div><div>--<br>Mark Gardner $ &lt;<a href="mailto:mjg@phoenixtrap.com" target="_blank">mjg@phoenixtrap.com</a>&gt;<br></div></div>
<br></span><div class="gmail_quote"><span>On Mon, Mar 23, 2015 at 6:06 PM, Mark Overmeer <span dir="ltr">&lt;<a href="mailto:mark@overmeer.net" target="_blank">mark@overmeer.net</a>&gt;</span> wrote:<br></span><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">* Mark Gardner (<a href="mailto:mjg@phoenixtrap.com" target="_blank">mjg@phoenixtrap.com</a>) [150323 21:10]:<br>
<span>&gt; syntax error at lib/WebService/Avalara/AvaTax/TaxSvc.pm line 4459, near<br>
&gt; &quot;%{{} unless&quot;<br>
&gt; syntax error at lib/WebService/Avalara/AvaTax/TaxSvc.pm line 4459, near &quot;;}&quot;<br>
&gt; Unmatched right curly bracket at lib/WebService/Avalara/AvaTax/TaxSvc.pm<br>
&gt; line 4459, at end of line<br>
&gt; Unmatched right curly bracket at lib/WebService/Avalara/AvaTax/TaxSvc.pm<br>
&gt; line 4466, at end of line<br>
&gt; syntax error at lib/WebService/Avalara/AvaTax/TaxSvc.pm line 4466, near &quot;}&quot;<br>
<br>
</span>Not all Data::Dump::Streamer versions have the same bugs.<br>
<br>
It apparently decodes<br>
<br>
  lib/XML/Compile/SOAP.pm<br>
      my @pairs = ( %{delete $data-&gt;{Header} || {}}<br>
                  , %{delete $data-&gt;{Body}   || {}});<br>
<br>
<br>
into<br>
  my(@pairs) = ( %{{} unless delete $$data{&#39;Header&#39;};}<br>
               , %{{} unless delete $$data{&#39;Body&#39;};});<br>
<br>
which is explainable but incorrect Perl.<br>
You may be able to get this resolved.<br>
<br>
XML::Compile::Dumper may not help your performance at all:<br>
Data::Dump::Streamer should have some de-duplication implemented.<br>
<span><font color="#888888">--<br>
Regards,<br>
<br>
               MarkOv<br>
<br>
------------------------------------------------------------------------<br>
       Mark Overmeer MSc                                MARKOV Solutions<br>
       Mark@Overmeer.net                          <a href="mailto:solutions@overmeer.net" target="_blank">solutions@overmeer.net</a><br>
<a href="http://Mark.Overmeer.net" target="_blank">http://Mark.Overmeer.net</a>                   <a href="http://solutions.overmeer.net" target="_blank">http://solutions.overmeer.net</a><br>
</font></span></blockquote></div></div></div><br></div>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>