The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Number::Pad - Pad numbers so the decimal point (or "E" if in exponential notation) align

VERSION

This document describes version 0.001 of Number::Pad (from Perl distribution Number-Pad), released on 2021-08-01.

SYNOPSIS

 use Number::Pad qw(pad_numbers);

 my $res = pad_numbers(
       ["1",
        "-20",
        "3.1",
        "-400.56",
        "5e1",
        "6.78e02",
        "-7.8e-10",
        "Inf",
        "NaN"],         # 1st arg: (required) the numbers
       20,              # 2nd arg: (optional) number of characters; if unspecified will just pad so all numbers fit
       'right',         # 3rd arg: (optional) alignment: l/left/r/right/c/center. default is l
       undef,           # 4th arg: (optional) pad character, default is space
       0,               # 5th arg: (optional) whether we should truncate if the length of widest number exceeds specified number of characters. default is false.
 );

Result:

 [ #12345678901234567890
   "             1      ",
   "           -20      ",
   "             3.1    ",
   "          -400.56   ",
   "             5e1    ",
   "             6.78e02",
   "            -7.8e-10",
   "           Inf      ",
   "           NaN      ",
 ]

FUNCTIONS

pad_numbers

Usage:

 $res = pad_numbers($text | \@numbers, $width [, $which [, $padchar=' ' [, $truncate=0] ] ] ); # => str or arrayref

Return an arrayref of numbers padded with $padchar to $width columns.

$width can be undef or -1, in which case the width will be determined from the widest number.

$which is either "r" or "right" for padding on the right, "l" or "left" for padding on the right (the default if not specified), or "c" or "center" or "centre" for left+right padding to center the text. Note that "r" will mean "left justified", while "l" will mean "right justified".

$padchar is whitespace if not specified. It should be string having the width of 1 column.

$truncate is boolean. When set to 1, then text will be truncated when it is longer than $width.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Number-Pad.

SOURCE

Source repository is at https://github.com/perlancar/perl-Number-Pad.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Number-Pad

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

String::Pad has the same interface, but does not have the decimal-point-aligning logic.

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.