what is "?" in ruby

Solution 1:

It denotes a "character". In ruby 1.8, this was represented by the ascii-code of the character. In Ruby 1.9, it's a single-character String.

Solution 2:

In 1.8 they give you the ASCII value of a character, in 1.9 they are character literals:

>> RUBY_VERSION #=> "1.8.7"
>> ?a #=> 97 
>> RUBY_VERSION #=> "1.9.2"
>> ?a #=> "a"
>> *[?a..?c] #=> ["a", "b", "c"]