Ezra Zygmuntowicz wrote:
> Can we please try to keep it civil in here? You go code how you want 
> and I will go code how I want and we can both be happy.

Actually, no, you're wrong.  String's gsub, for one, has been hard-wired
to force you to use magic punctuation in order to access the match data.

This forces *everyone* to depend on the pseudo-global variable hacks
unless they run their Regexp multiple times:

str = 'root:*:0:0:System Administrator:/var/root:/bin/sh'
re = /([^:]+)(:|$)/
str.gsub!(re) do |m|
	matchData = re.match(m)
	'x' * matchData[1].length + matchData[2]
end
puts str
	=> 'xxxx:x:x:x:xxxxxxxxxxxxxxxxxxxx:xxxxxxxxx:xxxxxxx'

So the langauge is hard-coded to force everyone to use pseudo-global
magically-scoped variables, that you have to cross your fingers and hope
work the way you need at the moment.

-- 
Neil Stevens - neil / hakubi.us

'A republic, if you can keep it.' -- Benjamin Franklin