Trace On has asked for the wisdom of the Perl Monks concerning the following question:

I have this hash with lots of soccer-Data I retrieve from the web:

$VAR1 = { 'status' => 'ok', 'fd' => { 'sports' => { 'sport' => { 'leagues' => { 'league' => [ { 'i +d' => '1739', 'e +vents' => { + 'event' => [ + { + 'IsLive' => 'No', + 'homeTeam' => { + 'name' => 'Union Mar del Plata', + 'type' => 'Team1', + 'rotNum' => '2084' + }, + 'status' => 'O', + 'id' => '473072973', + 'periods' => { + 'period' => { + 'lineId' => '20631938 +8', + 'maxBetAmount' => {}, + 'description' => '1st + Half', + 'spreads' => {}, + 'cutoffDateTime' => ' +2015-06-24T11:59:00Z', + 'number' => '1' + } + }, + 'drawRotNum' => '2086', + 'startDateTime' => '2015-06-24T11:59:00Z', + 'awayTeam' => { + 'name' => 'C. Cordoba Santiago', + 'type' => 'Team2', + 'rotNum' => '2085' + }, + 'lStatus' => '0' + }, + { + 'awayTeam' => { + 'name' => 'Santamarina Tandil', + 'type' => 'Team2', + 'rotNum' => '2082' + }, ...

Do you need more of the array?

How do I isolate the "leagues" and "events"? They are not numbered or something like that. So $home = $data_kurz->{league}[0]{events}{event}[0]{homeTeam}{name} works. But I am not supposed to loop through []-elements with a foreach?

My goal is by the way non profit. I am not betting. I am trying to show that betting does not work as the markets are efficient.

Replies are listed 'Best First'.
Re: How to parse this hash? And how to describe my probem?
by Corion (Patriarch) on Jun 08, 2015 at 09:20 UTC

      Thank you.

      To be more general: I want to have this hash in a mySQL-Database. Something with columns like

      League Home Away Date HomeOdds DrawOdds AwayOdds

      There is no shortcut to that?

Re: How to parse this hash? And how to describe my probem?
by Discipulus (Canon) on Jun 08, 2015 at 09:32 UTC
    Please post some XML and wanted result (in chat you said you want to produce a CSV)

    L*
    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

      The complete (big!) xml is con my Scratchbook (http://www.perlmonks.org/?viewmode=public;node_id=1120159). Poor formatting...

      The csv I just want to use to prepare a mySQL-Insert. I want to have a simple table structure with some of the xml-Data in a mySQL Database. Some like Home, Away, Odds, Date, League.

        the xml you put is broken: insert a valid chunk in  <c> </c> tags

        L*
        There are no rules, there are no thumbs..
        Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.