Subject: | __prepare_args breaks if $Data::Dumper::Terse = 1 |
__prepare_args does not behave as intended when code elsewhere sets $Data::Dumper::Terse = 1. The terse output does not include "$VAR1 = " nor the ';' at the end, so the regexes that should remove the square brackets fail. Thus __prepare_args returns a string that evals to an array ref, not an array, which may lead to complaints from the constructor invoked on the next line (57)
Proposed fix: localize $Data::Dumper::Terse to 0 inside of __prepare_args.