How can I print the contents of a hash in Perl?

前端 未结 11 1491
借酒劲吻你
借酒劲吻你 2020-12-22 15:52

I keep printing my hash as # of buckets / # allocated. How do I print the contents of my hash?

Without using a while loop would be most preferable (for

11条回答
  •  -上瘾入骨i
    2020-12-22 16:31

    The answer depends on what is in your hash. If you have a simple hash a simple

    print map { "$_ $h{$_}\n" } keys %h;
    

    or

    print "$_ $h{$_}\n" for keys %h;
    

    will do, but if you have a hash that is populated with references you will something that can walk those references and produce a sensible output. This walking of the references is normally called serialization. There are many modules that implement different styles, some of the more popular ones are:

    • Data::Dumper
    • Data::Dump::Streamer
    • YAML::XS
    • JSON::XS
    • XML::Dumper

    Due to the fact that Data::Dumper is part of the core Perl library, it is probably the most popular; however, some of the other modules have very good things to offer.

提交回复
热议问题