[dancer-users] Template Toolkit Sort Hash
Niels Larsen
niels at genomics.dk
Sun Sep 27 13:37:54 BST 2015
Kadir,
This will keep hash order,
http://search.cpan.org/~chorny/Tie-IxHash-1.23/lib/Tie/IxHash.pm
I only use it when I have to, but there is not too much of a
slowdown, and I would guess your hashes are small anyway.
I don't use Dancer myself, but follow its progress.
Niels L
On Sun, 2015-09-27 at 15:30 +0300, Kadir Beyazlı wrote:
> Hi WK,
>
> On Sun, Sep 27, 2015 at 3:13 PM, WK <wanradt at gmail.com> wrote:
> > 2015-09-27 14:48 GMT+03:00 Kadir Beyazlı <kadirbeyazli at gmail.com>:
> >
> >>> Of course, I can't be sure until I know what your data structure really looks like,
> >> [KB] The data Richard mentioned is a classic fetchall_hashref data as below:
> >>
> >> $Pats = {ID => { SNAME => Value,
> >> CHNAME => Value,
> >> ANAME => Value,
> >> },
> >> ID => { SNAME => Value,
> >> CHNAME => Value,
> >> ANAME => Value,
> >> },
> >> ID => { SNAME => Value,
> >> CHNAME => Value,
> >> ANAME => Value,
> >> }
> >> }
> >
> > When we need those elements be in particular order, sorted by any
> > deeper value in hash tree, there is two main solutions for this goal.
> >
> > First (and best for me). As hash can't maintain an order of elements,
> > you provide different data structure in right order, namely arrayref,
> > something like:
> [KB] I always use array ref if I need to order a database data because
> hash is unordered as you wrote and sort function sorts by key not by
> vaue (At perl code, it also sorts by value) at template toolkit. I
> tried to explain data structure Richard has trouble to Dave because
> Dave wrote a solution
>
> Richard,
>
> I offer you using arrayref at template toolkit too. Template toolkit
> supplies reaching values by table column names unlike perl code (t
> Perl code, we ave to use index to reach array data) which is very
> useful
> > $Pats = [ { 123 => { SNAME => Value,
> > CHNAME => Value,
> > ANAME => Value,
> > } },
> > { 124 => { SNAME => Value,
> > CHNAME => Value,
> > ANAME => Value,
> > } },
> > { 125 => { SNAME => Value,
> > CHNAME => Value,
> > ANAME => Value,
> > }
> > } ];
> >
> > Other variant is to use some helper in your templating system, which
> > provides map/reduce (Schwarzian transform) functionality. So you can
> > feed in your hash and it gives back id-s in specified order.
> >
> > Hope it helps.
> >
> > Wbr,
> > --
> > Kõike hääd,
> >
> > G
> > _______________________________________________
> > dancer-users mailing list
> > dancer-users at dancer.pm
> > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>
>
>
More information about the dancer-users
mailing list