An afterthought, but possibly a significant one. The error could be right there in Devel::StackTrace.
The code in question is trying to get the arguments that were passed to a sub from DB::args, but it doesn't check to see if there were any args passed to the sub (frame) in question.
Try modifying the line in the error message to read:
my @a = $c[4] ? @DB::args : ();
and see if the problem goes away.
Logic: From Perlfunc:caller()
...$hasargs is true if a new instance of @_ was set up for the frame....Furthermore, when called from within the DB package, caller returns more detailed information: it sets the list variable @DB::args to be the arguments with which the subroutine was invoked.
It doesn't say what the state of DB::args will be if $hasargs wasn't set. Making the attempt to get conditional upon $hasargs returned from caller ($c4) will exclude this possibility.
In the unlikely chance that this does affect a cure, be sure to report the problem and fix to the author.
In reply to Re: Mason app dies with "Bizarre copy of array in aassign"
by BrowserUk
in thread Mason app dies with "Bizarre copy of array in aassign"
by Jobius
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |