Provided by: libarray-printcols-perl_2.5-1_all bug

NAME

       print_cols, format_cols - Print or format array elements in vertically sorted columns.

SYNOPSIS

       "use Array::PrintCols;"

       "print_cols \@array;"

       "print_cols \@array, $colspec;"

       "print_cols \@array, $colspec, $total_width;"

       "print_cols \@array, $colspec, $total_width, $indent;"

                    \@I<array> may also be an ARRAYREF, HASH, or HASHREF.

       $output = "format_cols" <same arguments as "print_cols">;

       "$Array::PrintCols::PreSorted = 0;"

DESCRIPTION

       This module exports two subroutine names: "print_cols" and "format_cols".

       The "print_cols" subroutine prints the items of "@array" in multiple, alphabetically &
       vertically sorted columns.  In the case of the first argument being a HASH or HASHREF,
       only the keys of the hash are considered.

       One, two, or three optional arguments may be given to "print_cols" to control the width
       and number of the columns, the total width of the output, and indentation.  Reasonable
       defaults apply in the absence of the optional arguments (or when given as the empty string
       or zero).  Generally, the minimum width column is used when possible.

       If "$colspec" is given as a non-negative number, it is treated as the minimum width of the
       column; the actual width will be the maximum of this value and the lengths of all array
       items.

       If "$colspec" is given as a negative number, its absolute value value is used to determine
       the total number of columns.  However, it cannot exceed the total number of columns
       possible based on the maximum length of all the array elements.

       If a third argument is supplied, it is used as the total width of the output.  The default
       for this value is the value of the environment variable $ENV{'COLUMNS'}, if defined, or
       80.

       If the fourth argument is given, it is used as the indent for all lines printed, which
       subtracts from the total width of the output.  This value defaults to zero (ie: no
       indention of the output).

       The variable $Array::PrintCols::PreSorted controls whether or not the "print_cols"
       subroutine will expect its array argument to already be sorted.  If this variable is nil
       or zero, "print_cols" will cause print out a sorted copy of the input array.

       The routine "format_cols" is called exactly like "print_cols" but returns the formatted
       result as a string, rather than printing it.  "print_cols" actually invokes "format_cols",
       which does the real work.

EXAMPLES

           use Array::PrintCols;

           @commands = sort qw( use list put get set quit help server );

           # print in three columns with an indention of 1.
           print_cols \@commands, -3, 0, 1;

           # print the formatted result data to the result file
           print RESULTFILE format_cols(\@result_data);

AUTHOR

       Copyright (C) 1996-2013  Alan K. Stebbens <aks@stebbens.org>

       This program is free software: you can redistribute it and/or modify it under the terms of
       the GNU General Public License as published by the Free Software Foundation, either
       version 3 of the License, or (at your option) any later version.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program.
       If not, see <http://www.gnu.org/licenses/>.

BUGS

       Perl will not default intervening empty arguments; instead, use zero or the empty-string
       ('').