The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

Array::Columnize - arrange list data in columns.

SYNOPSIS

print columnize($array_ref, $optional_hash_or_hash_ref);

DESCRIPTION

In showing long lists, sometimes one would prefer to see the values arranged and aligned in columns. Some examples include listing methods of an object, listing debugger commands, or showing a numeric array with data aligned.

OPTIONS

displaywidth

the line display width used in calculating how to align columns

colfmt

What format specifier to use in sprintf to stringify list entries. The default is none.

colsep

String to insert between columns. The default is two spaces, oe space just wasn't enough.

the column separator

lineprefix
linesuffix
termadjust
arrange_array
ladjust

whether to left justify text instead of right justify. The default is true

EXAMPLES

Simple data example

print columnize(['a','b','c','d'], {displaywidth=>4});

produces:

a c
b d

With numeric data

my $array_ref = [80..120];
print columnize($array_ref, {ljust => 0}) ;

produces:

80 83 86 89 92 95 98 101 104 107 110 113 116 119
81 84 87 90 93 96 99 102 105 108 111 114 117 120
82 85 88 91 94 97 100 103 106 109 112 115 118

while:

print columnize($array_ref, {ljust => 0, arrange_vertical => 0}) ;

produces:

80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
100 101 102 103 104 105 106 107 108 109
110 111 112 113 114 115 116 117 118 119
120

And

my $array_ref = [1..30];
print columnize($array_ref,
{arrange_array => 1, ljust => 0, displaywidth => 70});

produces:

( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)

With String data

@ary = qw(bibrons golden madascar leopard mourning suras tokay);
print columnize(\@ary, {displaywidth => 18});

produces:

bibrons mourning
golden suras
madascar tokay
leopard
print columnize \@ary, {displaywidth => 18, colsep => ' | '};

produces:

bibrons | mourning
golden | suras
madascar | tokay
leopard

AUTHOR

Rocky Bernstein, rocky@cpan.org

BUGS

Please report any bugs or feature requests through the web interface at https://github.com/rocky/Perl-Array-Columnize/issues.

SUPPORT

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

perldoc Array::Columnize

You can also look for information at:

COPYRIGHT & LICENSE

Copyright (c) 2011, 2012 Rocky Bernstein.

LICENSE

Same terms as Perl.