SHARYANTO::String::Util(3) String utilities



ltrim($str) => STR

Trim whitespaces (including newlines) at the beginning of string. Equivalent to:

 $str =~ s/\A\s+//s;

ltrim_lines($str) => STR

Trim whitespaces (not including newlines) at the beginning of each line of string. Equivalent to:

 $str =~ s/^\s+//mg;

rtrim($str) => STR

Trim whitespaces (including newlines) at the end of string. Equivalent to:

 $str =~ s/[ \t]+\z//s;

rtrim_lines($str) => STR

Trim whitespaces (not including newlines) at the end of each line of string. Equivalent to:

 $str =~ s/[ \t]+$//mg;

trim($str) => STR

ltrim + rtrim.

trim_lines($str) => STR

ltrim_lines + rtrim_lines.

trim_blank_lines($str) => STR

Trim blank lines at the beginning and the end. Won't trim blank lines in the middle. Blank lines include lines with only whitespaces in them.

ellipsis($str[, $maxlen, $ellipsis]) => STR

Return $str unmodified if $str's length is less than $maxlen (default 80). Otherwise cut $str to ($maxlen - length($ellipsis)) and append $ellipsis (default '...') at the end.

indent($indent, $str, \%opts) => STR

Indent every line in $str with $indent. Example:

 indent('  ', "one\ntwo\nthree") # "  one\n  two\n  three"

%opts is optional. Known options:

  • indent_blank_lines => BOOL (default 1)

    If set to false, does not indent blank lines (i.e., lines containing only zero or more whitespaces).

linenum($str, \%opts) => STR

Add line numbers. For example:


Known options:

  • width => INT (default: 4)
  • zeropad => BOOL (default: 0)

    If turned on, will output something like:

  • skip_empty => BOOL (default: 1)

    If set to false, keep printing line number even if line is empty:


pad($text, $width[, $which[, $padchar[, $truncate]]]) => STR

Return $text padded with $padchar to $width columns. $which is either ``r'' or ``right'' for padding on the right (the default if not specified), ``l'' or ``left'' for padding on the right, or ``c'' or ``center'' or ``centre'' for left+right padding to center the text.

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

qqquote($str) => STR

Quote or encode $str to the Perl double quote ("qq") literal representation of the string. Example:

 say qqquote("a");        # => "a"
 say qqquote("a\n");      # => "a\n"
 say qqquote('"');        # => "\""
 say qqquote('$foo');     # => "\$foo"

This code is taken from "quote()" in Data::Dump. Maybe I didn't look more closely, but I couldn't a module that provides a function to do something like this. String::Escape, for example, provides "qqbackslash" but it does not escape "$".

None are exported by default, but they are exportable.


Please visit the project's homepage at <>.


Source repository is at HASH(0x353ed90).


Please report any bugs or feature requests on the bugtracker website

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.


Steven Haryanto <[email protected]>


This software is copyright (c) 2013 by Steven Haryanto.

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