in reply to Re^6: Best way to send records to the browser?
in thread Best way to send records to the browser?

You probably want

$hash{$record} = {uid => $rray[0], fname => $rray[1], lname => $rray[2 +]};

instead of

%hash = ($record => {uid => $rray[0], fname => $rray[1], lname => $rra +y[2]});

because the latter initializes the hash anew every time, so the old entries are lost.

Also, in this particular case, another problem seems to be that in the first loop you're creating hash entries with keys as "record_$i", while in the second loop you're using plain numbers ($i).  Also, you probably mistyped $hash2{$i} when you meant $hash{$i}.

More generally, there are two things that will likely save you lots of debugging time:

Replies are listed 'Best First'.
Re^8: Best way to send records to the browser?
by Perobl (Beadle) on Jun 26, 2010 at 21:52 UTC

    Thanks. That last bit of help was what I needed. I do have warnings and strict turned on btw. Never leave home without it.

    This syntax was a little tricky, but I now see how to build and retrieve HoH's. Thanks so much.

    For the sake of completeness, I'll post my final snippet of code here just incase someone else needs similar help.

    $i = 0; while (@rray = $sth -> fetchrow_array) { $record = "record_$i"; $hash{$record} = {uid => $rray[0], fname => $rray[1], lname => $rr +ay[2]}; #print $hash{$record} -> {uid}, qq/ /, $hash{$record} -> {fname}, +qq/ /, $hash{$record} -> {lname}, qq/\n/; $i += 1; } my ($key, $value); for ($i = 0; $i < 325; $i++) { $record = "record_$i"; $key = keys %hash; $value = $hash{$record} -> {fname}; print "key = record_$key, hash values = ", $hash{$record} -> {uid} +, ", ", $hash{$record} -> {fname}, ", ", $hash{$record} -> {lname}, " +\n"; }

    Now its time to take this HoH to TT2 and see if I can get my template to render it in the browser.

    BTW, I stumbled across an interesting Perl Module while working on this. See CG::Expand (it was new for me).

    Cheers

    Edited 6/26/10 @ 5:55 PM CST

    Sorry, I should've cleaned up that last block of code a bit before pasting it. Here is the edited version:

    # get number of records in %hash my $href = \%hash; my $records = scalar keys %$href; # print data from all records for ($i = 0; $i < $records; $i++) { $record = "record_$i"; print "key = $record, hash values = ", $hash{$record} -> {uid}, ", + ", $hash{$record} -> {fname}, ", ", $hash{$record} -> {lname}, "\n"; }