Я наткнулся на что-то, что кажется необычным, и мне было интересно, может ли кто-нибудь объяснить, почему.
1.8.7 :001 > some_str = "Hello World"
=> "Hello World"
1.8.7 :002 > some_str.try(:match, /^(\w*)/)
=> #<MatchData "Hello" 1:"Hello">
1.8.7 :003 > $1
=> nil
1.8.7 :004 > some_str.match(/^(\w*)/)
=> #<MatchData "Hello" 1:"Hello">
1.8.7 :005 > $1
=> "Hello"
Я не уверен, почему глобальная переменная $1
не устанавливается в первый раз, а устанавливается во второй раз. Любые идеи?