Hello Travis,

Thursday, February 20, 2003, 1:53:14 AM, you wrote:

TW> # This is ran about a million times
TW> h = Hash.new(0)
TW> data.scan(iptok).each do |tok|
TW>   h[tok] += 1
TW> end

are you heard about "sort|uniq" idiom? you can use
such code:

sorted_tokens = data.scan(iptok).sort

#The following code pushes in arr pairs of token, count
arr = []
prev_token = nil
count = 0
sorted_tokens.each do |tok|
  if tok == prev_token
    count += 1
  else
    arr << prev_token << count
    prev_token = tok
    count = 1
  end
end
if count > 0
  arr << prev_token << count
end

h = Hash[*arr]


-- 
Best regards,
 Bulat                            mailto:bulatz / integ.ru