From: Jeff Schwab Date: 2009-02-21T01:29:40+09:00 Subject: difference between {} and do/end I'm coming back to Ruby after a couple years away, and finding I've forgotten some of the basics. What's the difference between { ... } blocks and do ... end blocks? In particular, why does one of the following work, while the other fails? '%61lice'.gsub! /%(\d+)/ do $1.to_i(16).chr end # => "alice" '%61lice'.gsub! /%(\d+)/ { $1.to_i(16).chr } # => SyntaxError