### SimpleScalar $_ = "Homer"; ### SimpleSequence @aNames = qw(Homer Bart Lisa Maggie); ### SimpleNameValuePair %hPerson = (fname => 'Homer'); ### SimpleRecord %hPerson = (fname => 'Homer', lname=>'Simpson', age=> 33); ### SimpleTable ### NOTE: Here we start to use *references* ### because we want to put one kind of 'simple container' ### into another kind of 'simple container' ... whenever ### we *nest* simple data containers inside each other, ### thats when you have to start thinking about references... $oTable = [ {fname => 'Homer', lname=>'Simpson', age=> 33}, {fname => 'Bart', lname=>'Simpson', age=> 11}, {fname => 'Lisa', lname=>'Simpson', age=> 9}, ]; ### Now we need to know how to VIEW, ADD, EDIT and DELETE ### VIEW Homer print "$oTable->[0]{fname}\n----\n"; ### ADD a new SimpleRecord to the SimpleTable push @{$oTable}, {fname => 'Maggie', lname=>'Simpson', age=> 1}; ### EDIT a SimpleRecord in the SimpleTable $oTable->[0]{fname} = "Marge"; $oTable->[0]{age} = 28; ### DELETE a SimpleRecord from the SimpleTable pop @{$oTable}; ### Lets VIEW the whole thing! use Data::Dumper; print Data::Dumper->Dump([$oTable], [qw(SimpleTable)]); print "\n----\n"; ### SimpleWorkbook $oWkbk = {}; $oWkbk->{Simpsons} = $oTable; $oWkbk->{Flintstones} = $oTable1; ### this is blank for now $oWkbk->{Jetsons} = $oTable2; ### this is blank for now ### Lets VIEW the whole thing! use Data::Dumper; print Data::Dumper->Dump([$oWkbk], [qw(SimpleWkbk)]); print "\n----\n"; #### ### option1 put all your meta tags in a single SimpleTable my $oMetaTagTable1 = [ {tag_name => 'description' , tag_content=>'blah blah blah'}, {tag_name => 'keywords' , tag_content=>'word1;word2;word3'}, {tag_name => 'author' , tag_content=>'gurn blansten'}, ]; ### option2 put all your meta tags in a SimpleWorkbook ### where each "worksheet" has the name of the page ### where the metatags came from my $oWkbk = {}; $oWkbk->{index_htm} = $oMetaTagTable1; $oWkbk->{about_us} = $oMetaTagTable2; $oWkbk->{products} = $oMetaTagTable4; ### option3 thru option999 ### there are many ways you could approach this ### the main thing is, just think in terms of simple ### data containers and the problem is more workable