File-KDBX
view release on metacpan or search on metacpan
lib/File/KDBX/Util.pm view on Meta::CPAN
package File::KDBX::Util;
# ABSTRACT: Utility functions for working with KDBX files
use 5.010;
use warnings;
use strict;
use Crypt::PRNG qw(random_bytes random_string);
use Encode qw(decode encode);
use Exporter qw(import);
use File::KDBX::Error;
use List::Util 1.33 qw(any all);
use Module::Load;
use Ref::Util qw(is_arrayref is_coderef is_hashref is_ref is_refref is_scalarref);
use Scalar::Util qw(blessed looks_like_number readonly);
use Time::Piece 1.33;
use boolean;
use namespace::clean -except => 'import';
our $VERSION = '0.906'; # VERSION
our %EXPORT_TAGS = (
assert => [qw(DEBUG assert)],
class => [qw(extends has list_attributes)],
clone => [qw(clone clone_nomagic)],
coercion => [qw(to_bool to_number to_string to_time to_tristate to_uuid)],
crypt => [qw(pad_pkcs7)],
debug => [qw(DEBUG dumper)],
fork => [qw(can_fork)],
function => [qw(memoize recurse_limit)],
empty => [qw(empty nonempty)],
erase => [qw(erase erase_scoped)],
gzip => [qw(gzip gunzip)],
int => [qw(int64 pack_ql pack_Ql unpack_ql unpack_Ql)],
io => [qw(read_all)],
load => [qw(load_optional load_xs try_load_optional)],
search => [qw(query query_any search simple_expression_query)],
text => [qw(snakify trim)],
uuid => [qw(format_uuid generate_uuid is_uuid uuid UUID_NULL)],
uri => [qw(split_url uri_escape_utf8 uri_unescape_utf8)],
);
$EXPORT_TAGS{all} = [map { @$_ } values %EXPORT_TAGS];
our @EXPORT_OK = @{$EXPORT_TAGS{all}};
BEGIN {
my $debug = $ENV{DEBUG};
$debug = looks_like_number($debug) ? (0 + $debug) : ($debug ? 1 : 0);
*DEBUG = $debug == 1 ? sub() { 1 } :
$debug == 2 ? sub() { 2 } :
$debug == 3 ? sub() { 3 } :
$debug == 4 ? sub() { 4 } : sub() { 0 };
}
my %OPS = (
'eq' => 2, # binary
'ne' => 2,
'lt' => 2,
'gt' => 2,
'le' => 2,
'ge' => 2,
'==' => 2,
'!=' => 2,
'<' => 2,
'>' => 2,
'<=' => 2,
'>=' => 2,
'=~' => 2,
'!~' => 2,
'!' => 1, # unary
'!!' => 1,
'-not' => 1, # special
'-false' => 1,
'-true' => 1,
( run in 0.599 second using v1.01-cache-2.11-cpan-39bf76dae61 )