This perldoc gives you a short answer, but a short STFW session gives a little more detail. This basically indicates a broken stack in Perl.
Trivial example:
#!/usr/bin/perl my @A = 1..5; sub blowUp { undef @A; my $throwAway = {}; print for @_;
And to make it much more interesting, without assigning $ throwAway, this is an invisible error (although in the "Usage Warnings" section, it will at least show you that you are trying to access an uninitialized value). It's just that when you do a new task, you see strange behavior.
Since @_ is essentially lexically bound to the subroutine, and the arguments are passed by reference, this small subroutine basically pulls the carpet from underneath itself, discarding what @_ points to (you get the same behavior if you change undef to the destination , fwiw). I found several posts on perl5 porters that mention this as an artifact that the items on the stack do not count and therefore are not cleared.
So, until I have looked through all the code in your full source in depth, I will go further and guess that something is messing with something that was transferred to @_; then when @_ is referenced again, Perl tells you that something is rotting in Denmark.
The immediate problem is an error in the script / iow module. There is also a deeper Perl problem not referring to these elements, but I suspect that you will be able to install the module faster in the near future. :-)
HTH- Brian
Brian gerard
source share