Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>That perldoc gives you the short answer, but a brief STFW session yields a little more detail. This is basically evidence of a smashed stack in Perl.</p> <p>Trivial example:</p> <pre><code>#!/usr/bin/perl my @A = 1..5; sub blowUp { undef @A; my $throwAway = {}; print for @_; # &lt;== line 6 } blowUp(@A); __END__ bash$ ./blowitup Bizarre copy of HASH in print at ./blowitup line 6. </code></pre> <p>And to make it that much more entertaining, without the $throwAway assignment, it's an invisible error (though under 'use warnings' it will at least still tell you that you're trying to access an uninitialized value). It's just when you make a new assignment that you see the strange behavior.</p> <p>Since @_ is essentially lexically scoped to the subroutine, and arguments are passed by reference, that little subroutine basically pulls the rug out from under itself by undef'ing the thing that @_ was pointing to (you get the same behavior if you change the undef to an assignment, fwiw). I've found a number of postings on perl5-porters that mention this as an artifact of the fact that items on the stack are not reference counted and therefore not cleanly freed.</p> <p>So while I haven't looked through all of the code in your full source in depth, I'll go ahead and guess that something in there is messing with something that was passed in on @_ ; then when @_ is referenced again, Perl is telling you that something's rotten in Denmark.</p> <p>The immediate problem is a bug in the script/module, iow. The deeper issue of Perl not reference counting these items is also there, but I suspect you'll have better luck fixing the module in the short term. :-)</p> <p>HTH- Brian</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload