Provided by: libmojolicious-perl_4.63+dfsg-1_all
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>.