Array::PrintCols(3pm)

πŸ“¦
version 2.6 Β· 2 versions
  • 2.6 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 2.6 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– Array::PrintCols πŸ’–

okay so bestie, welcome to Array::PrintCols β€” that's the Array::PrintCols(3pm) page from the User Contributed Perl Documentation section, and yes she is that girl. πŸŽ€ This lil module prints or formats array elements in vertically sorted columns. Slay. ✨


🌸 NAME 🌸

Array::PrintCols β€” print or format array elements in vertically sorted columns. periodt. πŸ’…


✨ SYNOPSIS ✨

"use Array::PrintCols;"

"print_cols \@array;"

"print_cols \@array, $colspec;"

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

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

\@array may also be an ARRAYREF, HASH, or HASHREF. πŸ’œ

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

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

πŸ¦‹ DESCRIPTION πŸ¦‹

So this module exports two subroutine names: print_cols and format_cols. Two icons, one module. 🫢

The print_cols subroutine prints the items of @array in multiple, alphabetically & vertically sorted columns. the way that it sorts alphabetically AND vertically?? obsessed. 😭 And heads up: if the first argument is a HASH or HASHREF, only the keys of the hash are considered. iykyk. πŸ”‘

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. defaults eating and leaving no crumbs fr fr. πŸ“

  • 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. she has limits, bestie. πŸ’€
  • 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. main character energy: she'll sort it herself, no worries. ✨

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. πŸ‘‘ format_cols is the one doing the heavy lifting and print_cols is just the face of the operation, honestly iconic.


🌈 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);

look at her go πŸ’–


🧚 REPOSITORY 🧚

<https://github.com/aks/array-printcols>

go say hi, she lives there 🫢


πŸ‘‘ AUTHOR πŸ‘‘

Copyright (C) 1996-2014 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/>.

bestie read the license, I'm begging πŸ™ˆ


πŸ’€ BUGS πŸ’€

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

fr fr, do NOT leave a gap in your args and expect Perl to be nice about it. she won't. pass 0 or '' and move on. πŸ’…

and that's the whole page!! πŸ’– she's perl v5.36.0, dated 2022-12-07, and this was the Array::PrintCols(3pm) manual β€” tysm for reading, bestie, you ate. πŸŽ€βœ¨πŸ¦‹πŸŒΈπŸ‘‘