in reply to concatenate scalar with array name

As other Monks suggest - it's a bad idea to use variables to define other variable names. There are all sorts of ways that can - and does - go wrong. You lose a lot of ability to check and validate what your program is doing (namespace clashes, figuring out what you called that variable in the first place, later on in the program etc.)

Hashes basically implement the same functionality - a hash is sort of like an array, but it's 'keyed' via text strings. So when you're trying to use symbolic variable names, then the answer is generally 'just use a hash, that's what they're for'.

More detail on why it's a bad idea