On Wed, Jan 6, 2010 at 1:52 PM, David Masover <> wrote:
> On Tuesday 05 January 2010 09:39:53 pm Ruby Newbee wrote:
>> Since I have created a key/value pair with hash['abc'] << 3, why
>> hash.keys show nothing?
>
> Because you haven't set anything in the hash. That is,
>
> hash['abc'] = 3
>
> is equivalent to:
>
> hash.[]=('abc', 3)
>
> On the other hand, what you've done is:
>
> hash['abc'] << 3
>
> That's equivalent to:
>
> hash.[]('abc') << 3
>
Thanks for the explaining, now I think I have got it.
I'm always thinking it as the Perl way, since in Perl the syntax like
hash['abc'] << 3 will create a key/value pairs.
perl -MData:

umper -le '$hash={}; push @{$hash->{'abc'}},3; print Dumper $hash'
$VAR1 = {
'abc' => [
3
]
};
I didn't know in Ruby hash['abc'] = 3 and hash['abc'] << 3 are different.
Thanks again.