in reply to Introduction to anonymous arrays and hashes
I'm assuming this is related to a markup language such as HTML or XML.
I'm unsure whether you are using the data to create a document or if you are extracing the data from a document. If one of these, I would suggest you use one of the HTML:: or XML:: modules on CPAN. There may be others with which I'm unfamiliar; XML::LibXML is the only one that I have a reasonable working knowledge of.
In terms of how you might use anonymous arrays and hashes, behind the <readmore> is a script which creates a data structure to represent the following HTML fragment (and prints the content of the <em> element).
<html lang="en"> <head> </head> <body> <h1>Heading1</h1> <p id="para1" class="first-para">This is <em>emphasied</em>. A +nd this is not.</p> </body> </html>
Note: This code is for illustrative purposes only - I am not suggesting you include it in an application.
use strict; use warnings; my $ra_web_page = [ { type => 'tag', element => 'html', attributes => { lang => 'en', }, content => [ { type => 'tag', element => 'head', attributes => { }, content => [ ], }, { type => 'tag', element => 'body', attributes => { }, content => [ { type => 'tag', element => 'h1', attributes => { }, content => [ { type => 'string', value => 'Heading 1', }, ], }, { type => 'tag', element => 'p', attributes => { id => 'para1', class => 'first-para', }, content => [ { type => 'string', value => 'This is ', }, { type => 'tag', element => 'em', attributes => { }, content => [ { type => 'string', value => 'emphasised', }, ], }, { type => 'string', value => '. And this is not.', }, ], }, ], }, ], }, ]; my $em_text = $ra_web_page->[0]{content}[1]{content}[1]{content}[1]{co +ntent}[0]{value}; print "EM text = $em_text\n";
This has probably raised further questions. Ask away.
Regards,
PN5