From: Wladimir Mutel Date: 2002-03-26T19:46:37+09:00 Subject: Re: Difference between 'do' and 'begin' � ������ Clemens Hintze �������(�): >> before), and noted two similarly looking keywords in it. Why there is >> a need to make two of them, not one, to start a block ? > Although there *are* two 'keywords' to open a block, but those are > 'do' and '{'. Both have different precedence, so that both following > lines have different meaning: Yes, I know that 'do' and '{' are mostly synonims. > 'begin' is a totally different construct, that is *not* building a > block. It is more a statement like 'if' or 'while' ... > 'begin' is most often used together with its 'rescue' and/or 'ensure' > part to catch and handle exceptions that were raised by code within. So, in Ruby, begin/if/unless/while/until/for do not create a new scope lasting to the 'end' ? May be it is the main difference with rules of C.