NAME

Array::Transpose::Ragged - Transpose a ragged array

VERSION

Version 0.01

SYNOPSIS

Array::Transpose is a handy module to transpose a regular matrix. However, using it with an irregular matrix will result in data loss. This module transposes a ragged matrix. Note that it will not preserve values which are undef.

    use warnings; use strict;
    use Array::Transpose::Ragged qw/transpose_ragged/;

    my @array = (
      [qw /00 01/],
      [qw /10 11 12/],
      [qw /20 21/],
      [qw /30 31 32 33 34/],
    );

    my @transpose = transpose_ragged(\@array);

The variable @transpose will now be:

    @transpose = (['00' ,'10' ,'20' ,'30'],
                  ['01' ,'11' ,'21' ,'31'],
                  [undef,'12' ,undef,'32'],
                  [undef,undef,undef,'33'],
                  [undef,undef,undef,'34']
               );

EXPORT

transpose_ragged(\@array)

SUBROUTINES/METHODS

transpose_ragged(\@array)

_max_idx ($matrix)

returns the max index length of the matrix

_normalise_lengths

normalises the length of the matrix prior to calling transpose

AUTHOR

Kieren Diment, <zarquon at cpan.org>

BUGS

The implementation could probably be far more efficient.

Please report any bugs or feature requests to bug-array-transpose-ragged at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Array-Transpose-Ragged. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Array::Transpose::Ragged

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2010 Kieren Diment.

This program is released under the following license: BSD

See http://dev.perl.org/licenses/ for more information.