On 26/09/15 19:25, Kadir Beyazlı wrote:
Hi Dave,

On Sat, Sep 26, 2015 at 12:11 PM, Dave Cross <[email protected]
<mailto:[email protected]>> wrote:
 >
 >
 > On 25/09/15 19:40, Richard Reina wrote:
 >>
 >> I display a hash reference in a  template.  It works well but is there a
 >> way I can sort it by SNAME instead of ID?
 >>
 >>      <ul class="list-group fancy-list-items">    <!-- <ul
 >> class="list-group checked-list-box"> -->
 >>               <table style="width:100%">
 >>                  <% FOREACH ID IN Pats.keys.sort %>
 >>                  <tr class="list-group-item">
 >>                    <td width="70"><% Pats.$ID.SNAME %></td>
 >>                    <td width="75"><% Pats.$ID.ANAME %></td>
 >>                    <td width="35"><% Pats.$ID.SSN %></td>
 >>                    <td width="35"><% Pats.$ID.YR %></td>
 >>                    <td width="250"><% Pats.$ID.CHNAME %></td>
 >>                    <td width="550"><% Pats.$ID.DESCRIP %></td>
 >>                    <% END %>
 >>                  </tr>
 >>              </ul>
 >>              </table>
 >
 >
 > It looks like you have a hash of hashes. Is that correct?
 >
 > Anyway, you can pass "sort" the name of the key that you want sort on.
[KB] This is a very common problem asked previously and no solution
found. It was advised to use array ref instead of hashref at previous
mails. Now I tried your offer and see that it does not work. Values are
unordered again.

Damn, yes. There were a couple of typos in my solution. I didn't have time to test it. Sorry about that.

Of course, I can't be sure until I know what your data structure really looks like, but this demonstrates a solution for the data structure that seems to make most sense.

  [% Pats = {
     id1 => {
       ID    => 'id1',
       SNAME => 'ZZZ',
       ANAME => 'aname1',
     },
     id2 => {
       ID    => 'id2',
       SNAME => 'XXX',
       ANAME => 'aname2',
     },
     id3 => {
       ID    => 'id3',
       SNAME => 'YYY',
       ANAME => 'aname3',
     }
  } -%]
  Original:
  [% FOREACH id IN Pats.keys.sort -%]
  [% id %] / [% Pats.$id.SNAME %] / [% Pats.$id.ANAME %]
  [% END -%]
  New:
  [% FOREACH Pat IN Pats.values.sort('SNAME') -%]
  [% Pat.ID %] / [% Pat.SNAME %] / [% Pat.ANAME %]
  [% END -%]

Cheers,

Dave...

_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users

Reply via email to