I was merely passing it as with different var name to distinguish from different attempts in my html. Taking out the other case, as I have done, has no effect on the results. This is what is being passed the html in the paste above: template 'results.tt' => { 'title' => 'Get Softball Season Stats', 'payload' => %season, }, {}; And this is the result: Trying with payload TylerMontgomery(2022) ------------- TylerMontgomery(2022) : TylerMontgomery(2022) Name atbats so bb rbis hits runs TylerMontgomery(2022) 2020-08-23 14:22 GMT-05:00, Gabor Szabo <gabor@szabgab.com>:
OK, so I don't understand why do you pass the same %payload 3 times, but you need to pass references in all 3 cases.
template 'results.tt' => { 'title' => 'Get Softball Season Stats', 'games' => \%season, 'season' => \%season, 'payload' => \%season, 'F_NAME' => 'Geraldo',
}, {};
On Sun, Aug 23, 2020 at 9:38 PM Richard Reina <gatorreina@gmail.com> wrote:
template 'results.tt' => {
'title' => 'Get Softball Season Stats', 'payload' => \%season,
}, {};
Results in this:
Trying with payload ------------- :
Name atbats so bb rbis hits runs
2020-08-23 12:53 GMT-05:00, Gabor Szabo <gabor@szabgab.com>:
I think you should be passing references:
'payload' => \%season,
See the backslash.
Gabor
On Sun, Aug 23, 2020 at 8:45 PM Richard Reina <gatorreina@gmail.com> wrote:
Ok, maybe I've overlooked something but here is what I get with very simple call to a route and using very simple html.
http://paste.scsys.co.uk/592477
2020-08-23 9:57 GMT-05:00, Gabor Szabo <gabor@szabgab.com>:
Have you checked the content when you "view source" in the browser? I had cases when my code did not show up because I had some HTML issues. I wasted so much time till I figured out the content is there just hidden.
My example is stand-alone using Template::Toolkit, when using Dancer you don't need that, you only need to enable it in the config file and you pass your data to the "template" function.
The TT part is almost identical though I think in Dancer we use <% for tags and not the default [% as in my example.
Gabor
On Sun, Aug 23, 2020 at 5:46 PM Richard Reina <gatorreina@gmail.com> wrote:
Hi Gabor,
Thank you very much for your help. I appreciate your answer and all the wonderful tutorials at perlmaven, but so far I am unable to get this answer to work for me. My my hash %season seems to look the same as your %payload but when I try your solution only the name of the player is displayed. I do not use 'use Template'; in my backend code and am not really sure what the exact role of create.pl, is it for teaching purposes or is there a step within it that I must apply to get my %season to look like your %payload before I return it to my Dancer app? I will continue to experiment with your solution and try to find a place where I can post exactly what I am getting as a result.
Thanks again,
Richard
2020-08-23 7:18 GMT-05:00, Gabor Szabo <gabor@szabgab.com>: > I am not sure if this is what you meant, but using your data I wrote > two > examples here: > https://perlmaven.com/template-toolkit-hash-of-hash > > Gabor > > On Sun, Aug 23, 2020 at 12:33 AM Richard Reina > <gatorreina@gmail.com> > wrote: > >> I have the following perl multidimensional hash that is passed from >> Dancer to Template Toolkit as a hash reference. I am having trouble >> figuring out how to display it in Template Toolkit. >> >> $VAR1 = { >> 'TylerMontgomery(2022)' => { >> 'so' => 1, >> 'bb' => 1, >> 'rbis' => 0, >> 'atbats' => 7, >> 'runs' => 2, >> 'hits' => 2 >> }, >> 'ChaseLangan(2022)' => { >> 'runs' => 4, >> 'hits' => 4, >> 'atbats' => 5, >> 'bb' => 0, >> 'rbis' => 2, >> 'so' => 1 >> }, >> 'BryceJones(2021)' => { >> 'hits' => 2, >> 'runs' => 2, >> 'atbats' => 4, >> 'bb' => 1, >> 'rbis' => 4, >> 'so' => 1 >> }, >> }; >> >> This is how I iterate it in perl. >> >> foreach my $name (sort keys %season) { >> printf "%-27.27s", "$name: "; >> foreach my $stat (sort keys %{ $season{$name} }) { >> printf "%-12.12s", "$stat: $season{$name}{$stat} "; >> ## cal. avg >> $season{$name}{AVG} = $season{$name}{hits} / >> $season{$name}{atbats}; >> } >> >> >> printf "%4s %.3f\n", "avg:", $season{$name}{AVG}; >> } >> >> I then pass it back to my dancer app as a ref. with return >> \%season; >> and then to template toolkit with: >> >> template 'softball.tt' => { >> >> 'title' => 'Get Softball Season Stats', >> 'Season' => $season, >> >> >> }, {}; >> >> But I am lost trying to get it to display with template toolkit. >> Here's what I've tried so far. >> >> <table style="width:100%; line-height:40px;"> >> <% FOREACH Season = Season %> >> <tr> >> <td width="5">Season.key <% Season.key %></td> >> <td width="5">Season.val <% Season.value %></td> >> <td width="5">Season.val.atbats <% Season.value.atbats %> >> <td width="5">Season.val.hits <% Season.value.hits %> >> </tr> >> <% END %> >> >> Thanks for any help. >> _______________________________________________ >> dancer-users mailing list >> dancer-users@lists.preshweb.co.uk >> https://lists.preshweb.co.uk/mailman/listinfo/dancer-users >> >