beginner wrote: > On Aug 16, 6:21 pm, James Stroud <[EMAIL PROTECTED]> wrote: >>I'm afraid you've asked a non sequiter: >> >>euler 40% cat test.pl >> >>$a=$b->{"A"} ||={} ; >>print "$a\n" ; >> >>$b->{"B"} = 0 ; >>$a=$b->{"B"} ||={} ; >>print "$a\n" ; >> >>$b->{"X"} = 15 ; >>$a=$b->{"X"} ||={} ; >>print "$a\n" ; >> >>euler 41% perl test.pl >>HASH(0x92662a0) >>HASH(0x926609c) >>15 > > It is not supposed to be used this way. > $b is supposed to be a hash-table of hash-table. If a key exists in > $b, it points to another hash table. The $a=$b->{"A"} ||={} pattern is > useful when you want to add records to the double hash table. > > For example, if you have a series of records in the format of (K1, K2, > V), and you want to add them to the double hash-table, you can do > $a=$b->{K1} || ={} > $a->{K2}=V
That's great, but the perl code you provided does not behave identically to the python code you provided, so your requirments were not well stated. (Does my annoyance with perl and its ugly syntax show here?) James -- James Stroud UCLA-DOE Institute for Genomics and Proteomics Box 951570 Los Angeles, CA 90095 http://www.jamesstroud.com/ -- http://mail.python.org/mailman/listinfo/python-list