in reply to Re(2): if (ref $value eq "ARRAY") {
in thread if (ref $value eq "ARRAY") {

That's what I was getting at. It's not actually possible to really recover from such errors in a sensible way, so I want to croak at some point anyway. Since Can't use string ("...") as an ARRAY ref is just as good as a custom croak message, I simplify my life by skipping checks for conditions that wil cause the code to blow up anyway. Instead I check for semantic problems where I need to hit the selfdestruct button myself because Perl won't know to do it for me.

Makeshifts last the longest.