---
name: "SHARYANTO::String::Util"
section: "3pm"
platform: "linux"
package: "libsharyanto-string-util-perl"
version: "0.26-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SHARYANTO::String::Util"
---

# SHARYANTO::String::Util(3pm)

String utilities

## NAME

SHARYANTO::String::Util - String utilities

## DESCRIPTION

## FUNCTIONS

### 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:

```
     1|line1
     2|line2
      |
     4|line4
```

Known options:

- •

  width =\> INT (default: 4)

- •

  zeropad =\> BOOL (default: 0)

  If turned on, will output something like:

  ```
    0001|line1
    0002|line2
        |
    0004|line4
  ```

- •

  skip\_empty =\> BOOL (default: 1)

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

  ```
       1|line1
       2|line2
       3|
       4|line4
  ```

### 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.

## SEE ALSO

SHARYANTO

## HOMEPAGE

Please visit the project's homepage at \<https://metacpan.org/release/SHARYANTO-String-Util\>.

## SOURCE

Source repository is at HASH(0x353ed90).

## BUGS

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

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.

## AUTHOR

Steven Haryanto \<stevenharyanto@gmail.com\>

## COPYRIGHT AND LICENSE

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.
