From: Rick DeNatale [mailto:rick.denatale / gmail.com] 
#   arg1 = ("Ruby",(arg2="Rails"),(arg3="Rails")
# The answer lies in Ruby's parser rather than with objects and variables.

i usually think (no worry, my thoughts are usually wrong) assignments are just methods too, so,

   arg1 = "Ruby",arg2="Rails",arg3="Rails"

becomes

   arg1.someassignment( "Ruby",arg2="Rails",arg3="Rails" )

internally becomes

   arg1.someassignment( *("Ruby",arg2="Rails",arg3="Rails") )

internally becomes

   arg1.someassignment( ["Ruby",arg2="Rails",arg3="Rails"] )

wc is easy to understand, rubyish, obj-oriented, no?  And i do even have to remember how the parser does it.

kind regards -botp