Or am I doing the matching wrong? I am storing file names in an array. Later I match filenames against those in the array for various purposes. The filenames contain spaces and in this unfortunate case round brackets. File names with brackets are failing the match. FOO=() x="a file" y="a(file)b" FOO+=($x) FOO+=($y) print $FOO[(i)$x] print $FOO[(i)$y] # Now I found, that if i quote the string while matching then the comma file matches, but now the space file fails. print $FOO[(i)$x:q] print $FOO[(i)$y:q] If I escape/quote the string when adding to the array then again one of the two matches fails. In any case, I cannot escape the names when inserting into the array, as often double quoting/escaping happens when methods are called repeatedly, and external commands give errors if they get quoted filenames. I only quote the string finally if I am "eval"ing a command. I'd like to know if I am doing this wrong, is there a consistent way of matching the string inside the array. -- rahul