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@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@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@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.