I posted similar recently but its a little hang up of mine, so I'll post again!
DON'T USE 'ls' IF YOU CAN HELP IT! USE A FILE EXPRESSION (i.e. the bit that you provide to 'ls' when you do 'ls /some/where/aFile.*')
Try...
$ mkdir aNewDir
$ cd $_
$ touch a "b c"
$ set -A myArray `ls`
$ echo ${myArray[1]}
b
$ set -A myArray *
$ echo ${myArray[1]}
b c
using ls incorrectly results in the second file "b c" being split into 2 elements, "b" and "c"