I am new with ruby but something fishy with the array. if I type q=aa puts INV_FILE_HASH[q] # where INV_FILE_HASH is my hash function I GET THE RESULT PERFECTLY HOWEVER, query is user input and couldbe ''aa'' or ''aa aa'' query = query.split(/ /) query.each { |q| if (q == ''and'') OP.push(''and'') elsif (q == ''or'') OP.push(''or'') else # q=aa at this point which is correct puts INV_FILE_HASH[q] # prints out nil instead of values end } I get "nil" where the query is ''aa'' so the q is ''aa''. but if the query is ''aa aa'' than q first run is ''aa'' and second run is ''aa'' in first run it prints the result out but on second run the result is ''nil'' again. I can run 1000 run the first 999 is correct but 1000th run is nil again. what does realy cause this? -- Posted via http://www.ruby-forum.com/.
I found it, it was query = query.split(/ /) some reason when I change to query = query.scan(/\w+/) it worked HOWEVER THIS TIME IT IGNORES MY PHARANTESIS, how can I scan so that it would take the pharanthesis as another piece of string ? thank you -- Posted via http://www.ruby-forum.com/.