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
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs