Hi all, I'm a newbie so please bear with me. I'm using HTML::TableExtract to get data out of some tables and I'm trying to figure out how to put it into a hash.

As an example, let's say that every day Bob, Carol, Ted, & Alice each publish what they plan on eating for breakfast, lunch, and dinner for the day in a table on their respective websites. I want to go to each website, get the data from each table and store it in a hash so I can then create a table on my own web page which will summarize what each person is eating that day. The reason for the hash is that it's going to be tied to a DBM to which I will be adding other data from other scripts, and this way everything is stored in one DBM for easy access.

For example, here's what Bob's table would look like:

<TABLE> <TR>><TH></TH><TH>Breakfast</TH><TH>Lunch</TH><TH>Dinner</TH></TR><TR> +<TH>Fruit</TH><TD>Banana</TD><TD>Orange</TD><TD>Apple</TD></TR><TR><T +H>Meat</TH><TD>Bacon</TD><TD>Baloney</TD><TD>Burger</TD></TR><TR><TH> +Beverage</TH><TD>Coffee</TD><TD>Soda</TD><TD>Beer</TD></TR> </TABLE>
And the hash keys would be:
bob_fruit_breakfast carol_fruit_breakfast bob_fruit_lunch carol_fruit_lunch bob_fruit_dinner carol_fruit_dinner bob_meat_breakfast carol_meat_breakfast bob_meat_lunch carol_meat_lunch bob_meat_dinner carol_meat_dinner bob_beverage_breakfast bob_beverage_lunch and so on.... bob_beverage_dinner
Using the sample code in the HTML::TableExtract documentation I can print the data on the screen:
use HTML::TableExtract; $te = new HTML::TableExtract (headers=>[qw(Breakfast Lunch Dinner)]); $te->parse ($html_string); foreach $ts ($te->tables) { foreach $row ($ts->rows) { print join(',', @$row), "\n"; } }
but I can't figure out how to store it in a hash. It's obvious to me that @$row contains the data but I haven't been successful in getting it into the hash so that everything lines up, ie. the key "bob_fruit_breakfast" will contain the value "banana", etc.

Any help would be greatly appreciated!


In reply to Getting data from HTML::TableExtract into a hash by skoney

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.