On Aug 7, 2009, at 10:05 PM, w_a_x_man wrote:
> On Aug 7, 7:43 pm, Rob Biedenharn <R... / AgileConsultingLLC.com> wrote:
>> On Aug 7, 2009, at 8:10 PM, w_a_x_man wrote:
>>> On Aug 7, 7:02 pm, w_a_x_man <w_a_x_... / yahoo.com> wrote:
>>>> On Aug 7, 11:44 am, chutsu <chu... / gmail.com> wrote:
>>
>>>>> I've got a file that is in two columns, how do I add the second
>>>>> column
>>>>> up as I read through the file?
>>
>>>>> Code:
>>>>> #!/usr/bin/ruby
>>>>> file = File.open('some_file.txt')
>>
>>>>> # Going through each line
>>>>> file.each do |line|
>>>>> data = line.split("\t")
>>>>> total += data[1]        # How do I make this line work?
>>>>> end
>>
>>>>> puts total
>>
>>>> awk "{t += $2} END {print t}" some_file.txt
>>
>>> ruby -ane"BEGIN{$t=0}; $t += $F[1].to_f; END{p $t}" some_file.txt
>>
>> Just because you can still write your Perl in Ruby, doesn't mean that
>> you *should*.
>
> An example from Matz (Ruby in a Nutshell):
>
> ruby -ne 'print if /Ruby/' /usr/share/dict/words
>
> Matz put these features in Ruby so that they could be used,
> not so that they would not be used.
>
> But in your blind arrogance, you believe that because of your
> very special two-digit IQ, you are the sole arbiter of what is
> permissible with Ruby. And when someone dares to post code that
> does not conform to your standards of bloat, pretentiousness,
> pomposity, inefficiency, and intellectual mediocrity, you lash
> out with self-righteous savagery.
>
> As a man and as a programmer, you are a sick joke.

Well, I have a two-hexdigit IQ ;-)

Note that I don't fault your awk example, but I stand by my opinion.  
If the OP ever responds, we'll know who's advice has more long-term  
value. My initial response pointed out that the local variable, total,  
was scoped within the block and that the split portion of the line  
needed to be converted to an arithmetic value before being added to  
the total.

I made the assumption that chutsu wanted to learn something about Ruby  
and not just how to obtain a very specific result. If there's more to  
his/her situation, your one-liner won't make it too far.

-Rob


Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com