From the Text::Aligner documentation:
NAME
Text::Aligner
SYNOPSIS
use Text::Aligner qw( align);
# Print the words "just a test!" right-justified each on a line:
my @lines = align( 'right', qw( just a test!);
print "$_\n" for @lines;
DESCRIPTION
Text::Aligner exports a single function, align(), which is used to
justify strings to various alignment styles. The alignment specification
is the first argument, followed by any number of scalars which are
subject to alignment.
The operation depends on context. In list context, a list of the
justified scalars is returned. In scalar context, the justified
arguments are joined into a single string with newlines appended. The
original arguments remain unchanged. In void context, in-place
justification is attempted. In this case, all arguments must be lvalues.
Align() also does one level of scalar dereferencing. That is, whenever
one of the arguments is a scalar reference, the scalar pointed to is
aligned instead. Other references are simply stringified. An undefined
argument is interpreted as an empty string without complaint.