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 ::
.
camelize 'foo_bar' ;
camelize 'foo_bar-baz' ;
camelize 'FooBar::Baz' ;
|
class_to_file
my $file = class_to_file 'Foo::Bar' ;
|
Convert a class name to a file.
class_to_file 'Foo::Bar' ;
class_to_file 'FOO::Bar' ;
class_to_file 'FooBar' ;
class_to_file 'FOOBar' ;
|
class_to_path
my $path = class_to_path 'Foo::Bar' ;
|
Convert class name to path.
class_to_path 'Foo::Bar' ;
class_to_path 'FooBar' ;
|
decamelize
my $snakecase = decamelize $camelcase ;
|
Convert CamelCase string to snake_case and replace ::
with -
.
decamelize 'FooBar' ;
decamelize 'FooBar::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.
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
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.
my $tree = split_header 'foo="bar baz"; test=123, yada' ;
|
Split HTTP header value.
split_header( 'one; two="three four", five=six' )->[0][0];
split_header( 'one; two="three four", five=six' )->[0][3];
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
High resolution time, resilient to time jumps if a monotonic clock is available through Time::HiRes.
trim
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.