Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Building a data structure - %HoH, %HoA?

by BrowserUk (Patriarch)
on Nov 01, 2012 at 12:27 UTC ( [id://1001815]=note: print w/replies, xml ) Need Help??


in reply to Building a data structure - %HoH, %HoA?

I believe I need to make a hash of team containing an array of (unique)location containing an array of tools and their number. Or maybe a hash of hashes of hashes? I've been trying just about every permutation I can think of for days.

Pass your required output to an XML parser that uses data structures and see what it produces; and then mimic it:

#! perl -slw use strict; use Data::Dump qw[ pp ]; use XML::Simple; my $xml = XMLin( \*DATA, KeepRoot => 1, NoAttr => 1 ); pp $xml; print XMLout( $xml, KeepRoot => 1, NoAttr => 1 ); __DATA__ <ToolLocations> <ToolLocation> <LocationName>location_4</LocationName> <ToolList> <Tool> <ToolName>tool_2</ToolName> <ToolNum>5</ToolNum> </Tool> <Tool> <ToolName>tool_5</ToolName> <ToolNum>3</ToolNum> </Tool> </ToolList> </ToolLocation> </ToolLocations>

Produces:

C:\test>1001808 { ToolLocations => { ToolLocation => { LocationName => "location_4", ToolList => { Tool => [ { ToolName => "tool_2", ToolNum => 5 }, { ToolName => "tool_5", ToolNum => 3 }, ], }, }, }, } <ToolLocations> <ToolLocation> <LocationName>location_4</LocationName> <ToolList> <Tool> <ToolName>tool_2</ToolName> <ToolNum>5</ToolNum> </Tool> <Tool> <ToolName>tool_5</ToolName> <ToolNum>3</ToolNum> </Tool> </ToolList> </ToolLocation> </ToolLocations>

That takes your required output as input, converts it to a data structure and then converts it back successfully. So now you know what the data structure needs to look like.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

RIP Neil Armstrong

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1001815]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (6)
As of 2024-03-19 09:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found