Fish, David <> wrote:
> Hello!  The problem I am having is I am pulling data from a table in
> a certain order and loading it into the hash array but when I read
> the hash array it comes out in a different order than it is written. 
> What I have done as a work around, is the read the data from a file
> that has it in the correct order.  Is there away to build the hash so
> that it reads in the order it was created?     
> 
> 
> 
> Key creation and hash build:
>       select statement ordering by certain columns
>       ......
> 
>       $key = sprintf("%04d%07d%07d",$chk_num,$trans_seq,$dtl_seq);
>       $midtlinfo{$key} =
>
sprintf("%d|%d|%s|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%s|%s|%d|%d|%0.2f|%0.
> 2f|%0.2f",
>                                   $se_chk_mi_seq,
>                                   $obj_num,
>                                   $business_date,
>                                   $chk_num,
>                                   $trans_seq,
>                                   ........
>                                   );
> 
> Reading of the hash:
> foreach $mk (keys %midtlinfo)
>  @mrec = split(/\|/,$midtlinfo{$mk});
> 
>    ....
> 
> }

1. Push keys into an array as you add them to the hash and use that
instead of 'keys %hash',

... or ...

2. Use the module designed for that purpose. See
http://search.cpan.org/~gsar/Tie-IxHash-1.21/lib/Tie/IxHash.pm

HTH

-- 
Brian Raven 

-----------------------------------------------------------------------------------------------------------
This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient or have received this e-mail in error, please advise 
the sender immediately by reply e-mail and delete this message and any 
attachments without retaining a copy. Any unauthorised copying, disclosure or 
distribution of the material in this e-mail is strictly forbidden.


_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to