Am Mittwoch, 11. Mai 2005 15.18 schrieb Mark Martin:
> HI,
> I want to provide remittance slips to my suppliers. I've extracted data
> from my payments database and pushed records into an array. Here is a
> sample of data from that array :
>
> 01,supplierA,100.00,1st May 2005
> 02,supplierB,100.00,3rd May 2005
> 03,supplierC,100.00,3rd May 2005
> 04,supplierA,100.00,4th May 2005
>
> I would identify the fields thus :
>
> foreach $item(@array) {
> ($transaction,$supplier,$amount,$pay_date) = split /,/,$item;
> }
>
> This allows me to print a remittance by transaction(record) but I need some
> sort of grouping mechanism to group transactions belonging to the same
> supplier.
> In other words - although the sample above has 4 transactions, it should
> only produce 3 remittance slips.

What about something like the following (the code could be shorter):

my %suppliers;

foreach $item(@array) {
 ($transaction,$supplier,$amount,$pay_date) = split /,/,$item;

 # record sum of amounts
 $suppliers{$supplier}->{amount}+=$amount;

 # record transactions
 push @{$suppliers{$supplier}->{transactions}}, $transaction;

 # record pay dates
  push @{$suppliers{$supplier}->{pay_dates}}, $pay_date;
}

joe

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to