http://qs1969.pair.com?node_id=191936


in reply to Re: using 'keys' recursively on a hash of hashes
in thread using 'keys' recursively on a hash of hashes

The extraneous commas are no problem. That is one of the many improvements of Perl versus C. These extra commas allow easier additions to the hash with any of Emacs, Vi, Notepad, Wordpad, Ultra-edit, or even ed.

Another possible style, which I prefer, consists in writing the comma at the beginning of the next line, not the end of the previous one. Example:

my %switch_hash =
  (
   chrdex   => 
   {
    DEX   => 
    {
        '01-AUG-02'  => 1
      , '03-AUG-02'  => 3
    }
   }
    
 , uslcgb5e2sm => 
   {
    Greensboro  => 
    {
        '4-AUG-02'   => 1
      , '6-AUG-02'   => 2
    }
   },
    
 , uslecat25e1       => 
   {
    'Atlanta II' =>  # quotation marks are required here
    {
        '1-AUG-02'   => 1
      , '2-AUG-02'   => 3
      , '3-AUG-02'   => 1
      , '4-AUG-02'   => .25
    }
   }
  );

This style also allows easier editing of the hash.
  • Comment on Re: Re: using 'keys' recursively on a hash of hashes

Replies are listed 'Best First'.
Re: using 'keys' recursively on a hash of hashes
by Abigail-II (Bishop) on Aug 22, 2002 at 08:59 UTC
    Another possible style, which I prefer, consists in writing the comma at the beginning of the next line, not the end of the previous one.
    That reminds me of the professor who gave us our first programming classes back in university. He would write the semi-colons before the statements, not after them. (This was in Pascal, where semi-colons are statement separators, just like in Perl).
    This style also allows easier editing of the hash.
    Really? How? I see as disadvantage that if you remove the first item you need to modify the next line. Or if you insert an item at the beginning, you need to modify the next line too. The big advantage of putting a comma after the items is that you can always put a comma there, and don't have to do special things when adding or removing elements - not even at the beginning or end.

    Abigail