NAME

No::Worries::String - string handling without worries

SYNOPSIS

use No::Worries::String qw(*);

# format a number of bytes
printf("%s has %s\n", $path, string_bytefmt(-s $path));

# escape a string
printf("found %s\n", string_escape($data));

# produce a nice output (e.g "1 file" or "3 files")
printf("found %s\n", string_quantify($count, "file"));

# format a table
print(string_table([
    [1, 1,  1],
    [2, 4,  8],
    [3, 9, 27],
], header => [qw(x x^2 x^3)]));

# trim a string
$string = string_trim($input);

DESCRIPTION

This module eases string handling by providing convenient string manipulation functions.

FUNCTIONS

This module provides the following functions (none of them being exported by default):

string_bytefmt(NUMBER[, PRECISION])

return the given NUMBER formatted as a number of bytes with a suffix such as kB or GB; the default precision (i.e. number of digits after the decimal dot) is 2

string_escape(STRING)

return a new string with all potentially non-printable characters escaped; this includes ASCII control characters, non-7bit ASCII and Unicode characters

string_plural(STRING)

assuming that STRING is an English noun, returns its plural form

string_quantify(NUMBER, STRING)

assuming that STRING is an English noun, returns a string saying how much of it there is; e.g. string_quantify(2, "foot") is "2 feet"

string_table(TABLE[, OPTIONS])

transform the given table (a reference to an array of arrays of strings) into a formatted multi-line string; supported options:

  • align: array reference of alignment directions (default: "left"); possible values are "left", "center" and "right"

  • colsep: column separator string (default: " | ")

  • header: array reference of column headers (default: none)

  • headsep: header separator (default: "=" or "-" for MarkDown)

  • indent: string to prepend to each line (default: "")

  • markdown: return a MarkDown compatible table

string_trim(STRING)

return a new string with leading and trailing spaces removed

SEE ALSO

No::Worries.

AUTHOR

Lionel Cons http://cern.ch/lionel.cons

Copyright (C) CERN 2012-2019