Provided by: libmojolicious-perl_4.63+dfsg-1_all bug

NAME

       Mojo::Util - Portable utility functions

SYNOPSIS

         use Mojo::Util qw(b64_encode url_escape url_unescape);

         my $str = 'test=23';
         my $escaped = url_escape $str;
         say url_unescape $escaped;
         say b64_encode $escaped, '';

DESCRIPTION

       Mojo::Util provides portable utility functions for Mojo.

FUNCTIONS

       Mojo::Util implements the following functions.

   b64_decode
         my $bytes = b64_decode $b64;

       Base64 decode bytes.

   b64_encode
         my $b64 = b64_encode $bytes;
         my $b64 = b64_encode $bytes, "\n";

       Base64 encode bytes, the line ending defaults to a newline.

   camelize
         my $camelcase = camelize $snakecase;

       Convert snake_case string to CamelCase and replace "-" with "::".

         # "FooBar"
         camelize 'foo_bar';

         # "FooBar::Baz"
         camelize 'foo_bar-baz';

         # "FooBar::Baz"
         camelize 'FooBar::Baz';

   class_to_file
         my $file = class_to_file 'Foo::Bar';

       Convert a class name to a file.

         # "foo_bar"
         class_to_file 'Foo::Bar';

         # "foobar"
         class_to_file 'FOO::Bar';

         # "foo_bar"
         class_to_file 'FooBar';

         # "foobar"
         class_to_file 'FOOBar';

   class_to_path
         my $path = class_to_path 'Foo::Bar';

       Convert class name to path.

         # "Foo/Bar.pm"
         class_to_path 'Foo::Bar';

         # "FooBar.pm"
         class_to_path 'FooBar';

   decamelize
         my $snakecase = decamelize $camelcase;

       Convert CamelCase string to snake_case and replace "::" with "-".

         # "foo_bar"
         decamelize 'FooBar';

         # "foo_bar-baz"
         decamelize 'FooBar::Baz';

         # "foo_bar-baz"
         decamelize 'foo_bar-baz';

   decode
         my $chars = decode 'UTF-8', $bytes;

       Decode bytes to characters and return "undef" if decoding failed.

   deprecated
         deprecated 'foo is DEPRECATED in favor of bar';

       Warn about deprecated feature from perspective of caller. You can also set the
       MOJO_FATAL_DEPRECATIONS environment variable to make them die instead.

   dumper
         my $perl = dumper {some => 'data'};

       Dump a Perl data structure with Data::Dumper.

   encode
         my $bytes = encode 'UTF-8', $chars;

       Encode characters to bytes.

   get_line
         my $line = get_line \$str;

       Extract whole line from string or return "undef". Lines are expected to end with "0x0d
       0x0a" or 0x0a.

   hmac_sha1_sum
         my $checksum = hmac_sha1_sum $bytes, 'passw0rd';

       Generate HMAC-SHA1 checksum for bytes.

   html_unescape
         my $str = html_unescape $escaped;

       Unescape all HTML entities in string.

   md5_bytes
         my $checksum = md5_bytes $bytes;

       Generate binary MD5 checksum for bytes.

   md5_sum
         my $checksum = md5_sum $bytes;

       Generate MD5 checksum for bytes.

   monkey_patch
         monkey_patch $package, foo => sub {...};
         monkey_patch $package, foo => sub {...}, bar => sub {...};

       Monkey patch functions into package.

         monkey_patch 'MyApp',
           one   => sub { say 'One!' },
           two   => sub { say 'Two!' },
           three => sub { say 'Three!' };

   punycode_decode
         my $str = punycode_decode $punycode;

       Punycode decode string.

   punycode_encode
         my $punycode = punycode_encode $str;

       Punycode encode string.

   quote
         my $quoted = quote $str;

       Quote string.

   secure_compare
         my $bool = secure_compare $str1, $str2;

       Constant time comparison algorithm to prevent timing attacks.

   sha1_bytes
         my $checksum = sha1_bytes $bytes;

       Generate binary SHA1 checksum for bytes.

   sha1_sum
         my $checksum = sha1_sum $bytes;

       Generate SHA1 checksum for bytes.

   slurp
         my $bytes = slurp '/etc/passwd';

       Read all data at once from file.

   split_header
          my $tree = split_header 'foo="bar baz"; test=123, yada';

       Split HTTP header value.

         # "one"
         split_header('one; two="three four", five=six')->[0][0];

         # "three four"
         split_header('one; two="three four", five=six')->[0][3];

         # "five"
         split_header('one; two="three four", five=six')->[1][0];

   spurt
         $bytes = spurt $bytes, '/etc/passwd';

       Write all data at once to file.

   squish
         my $squished = squish $str;

       Trim whitespace characters from both ends of string and then change all consecutive groups
       of whitespace into one space each.

   steady_time
         my $time = steady_time;

       High resolution time, resilient to time jumps if a monotonic clock is available through
       Time::HiRes.

   trim
         my $trimmed = trim $str;

       Trim whitespace characters from both ends of string.

   unquote
         my $str = unquote $quoted;

       Unquote string.

   url_escape
         my $escaped = url_escape $str;
         my $escaped = url_escape $str, '^A-Za-z0-9\-._~';

       Percent encode unsafe characters in string, the pattern used defaults to
       "^A-Za-z0-9\-._~".

   url_unescape
         my $str = url_unescape $escaped;

       Decode percent encoded characters in string.

   xml_escape
         my $escaped = xml_escape $str;

       Escape unsafe characters "&", "<", ">", """ and "'" in string.

   xor_encode
         my $encoded = xor_encode $str, $key;

       XOR encode string with variable length key.

SEE ALSO

       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.