in reply to Creating strings with specified names

Perl is seeing my $data at $sth->execute($data) as one variable, not a list.

That's because $data is a scalar, not a list. join creates a string from a list.