On Oct 31, 2005, at 12:34, Xavier Noria wrote:

sub HoA_to_AoH {
    my ($HoA) = @_;

    my @keys = keys %{$HoA};
    return [] if not @keys;

    my @AoH = ();

    my $nkeys = @keys;
    my $nvals = @{$HoA->{$keys[0]}};
    my $iter = indexes($nvals, $nkeys);
    while (my $idxs = $iter->()) {
        my %H = ();
        my $i = 0;
        for my $k (@keys) {
            $H{$k} = $HoA->{$k}[$i];
            ++$i;
        }
        push @AoH, \%H;
    }

    return [EMAIL PROTECTED];
}

Sorry, there's a bug there (I forgot to use $idxs):

sub HoA_to_AoH {
    my ($HoA) = @_;

    my @keys = keys %{$HoA};
    return [] if not @keys;

    my @AoH = ();
    my $nkeys = @keys;
    my $nvals = @{$HoA->{$keys[0]}};
    my $iter = indexes($nvals, $nkeys);
    while (my $idxs = $iter->()) {
        my %H = ();
        my $i = 0;
        for my $k (@keys) {
            $H{$k} = $HoA->{$k}[$idxs->[$i]];
            ++$i;
        }
        push @AoH, \%H;
    }

    return [EMAIL PROTECTED];
}



--
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