sub flatten_stringeval { eval join ',', map {ref $_[$_] eq 'ARRAY' ? "\@\{\$_[$_]\}" : "\$_[$_]"} (0..$#_); }