In this context, ?with a character is a literal single character string. Therefore, it ?Tis the string "T", and puts ?Tmatches with puts "T". You can drop it on the IRB to check it out:
1.9.3p429 :002 > ?T
=> "T"
1.9.3p429 :001 > ?T.class
=> String
1.9.3p429 :003 > puts ?T
T
=> nil
Related Existing SO Questions and Answers:
: , , , ruby 1.9, String ASCII. ( ASCII T 84)
1.9.3p429 :006 > ?T.ord
=> 84