[dancer-users] How tod displaye aMulti Dimesional Hash in Template Toolkit
Richard Reina
gatorreina at gmail.com
Mon Aug 24 11:26:15 EDT 2020
I am going out of my mind. I have no idea what could be wrong.
Below is my route (with the hash defined in it), my html and the results I
get in the browser.
get '/results' => sub {
# Test the hash
my %season= (
'TylerMontgomery(2022)' => {
'so' => 1,
'bb' => 1,
'rbis' => 0,
'atbats' => 117,
'runs' => 2,
'hits' => 2
},
'ChaseLangan(2022)' => {
'runs' => 4,
'hits' => 24,
'atbats' => 5,
'bb' => 0,
'rbis' => 2,
'so' => 1
},
'BryceJones(2021)' => {
'hits' => 2,
'runs' => 2,
'atbats' => 4,
'bb' => 2,
'rbis' => 4,
'so' => 1
},
);
template 'results.tt' => {
'title' => 'Get Softball Season Stats',
'payload' => \%season,
}, {};
};
################################################
HTML
################################################
<!DOCTYPE html>
<html lang="en">
<head>
<!-- head definitions go here -->
<meta charset="utf-8">
</head>
<body>
<% IF payload.size %> <!-- season data
-------------------------------------->
<% payload.size %>
<% USE Dumper; Dumper.dump(payload) %>
<div class="container" style="margin-top:20px;">
<h3>Trying with Gabor's solution</h3>
<% FOR name IN payload.keys.sort %>
<% name %>
-------------
<%- FOR field IN payload.$name.keys.sort %>
<p>Field: </p><% field %> : <% payload.$name.$field -%>
<p>Field: </p><% field %> : <% payload.$name.atbats -%>
<% END %>
<% END %>
</div>
<div class="container" style="margin-top:20px;">
<h3>Trying with Ikegami's solution</h3>
<% FOREACH id IN payload.keys %>
<% season = payload.$id %>
<p><% season.runs %></p>
<p><% season.atbats %></p>
<% END %>
</div>
<br> <br>
<div class="container" style="margin-top:20px;">
<% USE String %>
Name atbats so bb rbis hits runs
<% FOR name IN payload.keys.sort %>
<% fname = String.new(name) -%>
<% atbats = String.new(payload.$name.atbats) -%>
<% so = String.new(payload.$name.so) -%>
<% bb = String.new(payload.$name.bb ) -%>
<% rbis = String.new(payload.$name.rbis) -%>
<% hits = String.new(payload.$name.hits) -%>
<% runs = String.new(payload.$name.runs) -%>
<% fname.left(22) %> <% atbats.right(3) -%> <% so.right(3) -%> <%
bb.right(3) -%> <% rbis.right(3) -%> <% hits.right(3) -%> <%
runs.right(3) -%>
<% END %>
<% END %>
</div>
<div class="container" style="margin-top:20px;">
<h3>Trying with Perlmonks solution</h3>
<% FOREACH brevet = payload %>
brevet.key <% brevet.key %>
brevet.val <% brevet.value %>
brevet.$val.hits <% brevet.$value.atbats %>
brevet.val.atbats <% brevet.value.runs %>
brevet.val.dist <% brevet.value.hits %>
<% END %>
</div>
</body>
</html>
#######################################################
The results that appear in the browser
#######################################################
Trying with Gabor's solution-------------
Field:
:
Field:
:
Trying with Ikegami's solution
Name atbats so bb rbis hits runs
Trying with Perlmonks solutionHASH(0x17982b0) brevet.key brevet.val
brevet.$val.hits brevet.val.atbats brevet.val.dist
Powered by Dancer2 <http://perldancer.org/> 0.300004
##############################################################################################
*If I replace 'payload' => \%season, with 'payload' => %season and restart
my app with plackup bin/app.psgi then the results in the browser are:*
TylerMontgomery(2022) TylerMontgomery(2022)
Trying with Gabor's solutionTylerMontgomery(2022) -------------
TylerMontgomery(2022)
Field:
: TylerMontgomery(2022)
Field:
: TylerMontgomery(2022)
Trying with Ikegami's solutionTylerMontgomery(2022) TylerMontgomery(2022)
Name atbats so bb rbis hits runs TylerMontgomery(2022)
Trying with Perlmonks solutionTylerMontgomery(2022) brevet.key brevet.val
brevet.$val.hits brevet.val.atbats brevet.val.dist
Powered by Dancer2 <http://perldancer.org/> 0.300004
El dom., 23 ago. 2020 a las 23:11, Gabor Szabo (<gabor at szabgab.com>)
escribió:
> Try putting that backslash back so it will be
>
> template 'results.tt' => {
>
> 'title' => 'Get Softball Season Stats',
> 'payload' => \%season,
>
> }, {};
> Gabor
>
> On Sun, Aug 23, 2020 at 10:44 PM Richard Reina <gatorreina at gmail.com>
> wrote:
>
>> 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 at 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 at 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 at 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 at 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
>> >> >>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20200824/d090ea75/attachment-0003.htm>
More information about the dancer-users
mailing list