As far as I can tell is there no way in Bash to pass a concatenated array to an internal function and not have the resulting string split apart. Eg
function f() { for e in "$@" do echo $e done } A=( x y z ) f a b "${A[@]}" 'c d' "e f"
will output
a b x y z c d e f
when I expected it to output
a b x y z c d e f
Google and stackoverflow.com both failed me, as did trying lots of variations.