I have a data file named "foo", whose contents is like this ...
IMNSearch.msg.en_US.rte.com:IMNSearch.msg.en_US.rte.com:2.4.0.0: : :C: + :Text Search Messages - U.S. English: : : : : : :1:0: IMNSearch.rte:IMNSearch.rte.com:2.4.0.0: : :C: :Text Search Client/Ser +ver Shared Files : : : : : : :1:0: IMNSearch.rte.httpdlite:IMNSearch.rte.httpdlite:2.1.0.0: : :C: :Lite N +etQuestion Local Web Server: : : : : : :1:0:
I want to read in this file, split each line on the ":", and store the values in a hash like ...
$data{"foo"}{IMNSearch.msg.en_US.rte.com} = 2.4.0.0
I think I've got this part working fine; the problem comes in when I try to print the output. What I wind up with is ...
IMNSearch.msg.en_US.rte.com IMNSearch.msg.en_US.rte.com IMNSearch.rte IMNSearch.rte IMNSearch.rte.httpdlite IMNSearch.rte.httpdlite
Here is what I've got ...
my (%data, $system, @fields); $system = "foo"; open (FILE, "$system"); while (<FILE>) { @fields = split (/:/, $_); $data{$system}{$fields[$1]} = $fields[$2]; }; close FILE; foreach (sort keys %{$data{$system}}) { printf ("%-30s%-30s\n", $_, $data{$system}{$_}); };
Am I missing something obvious, or doing something dumb (or both?)

In reply to Help with printing values from a hash of hashes by blueflashlight

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.