]> Dogcows Code - chaz/p5-File-KDBX/blobdiff - lib/File/KDBX/Util.pm
Add iterator
[chaz/p5-File-KDBX] / lib / File / KDBX / Util.pm
index c4730fc6ed3964a250ad9a6c790645ec06d09502..b1795a71c111d1144995dc7e82d7769f47e018fa 100644 (file)
@@ -35,7 +35,7 @@ our %EXPORT_TAGS = (
     load        => [qw(load_optional load_xs try_load_optional)],
     search      => [qw(query search search_limited simple_expression_query)],
     text        => [qw(snakify trim)],
-    uuid        => [qw(format_uuid generate_uuid is_uuid uuid)],
+    uuid        => [qw(format_uuid generate_uuid is_uuid uuid UUID_NULL)],
     uri         => [qw(split_url uri_escape_utf8 uri_unescape_utf8)],
 );
 
@@ -376,7 +376,8 @@ Set up the current module to inheret from another module.
 sub extends {
     my $parent  = shift;
     my $caller  = caller;
-    load $parent;
+    # load $parent;
+    eval qq[require $parent];
     no strict 'refs'; ## no critic (ProhibitNoStrict)
     @{"${caller}::ISA"} = $parent;
 }
@@ -401,7 +402,7 @@ sub has {
     my ($package, $file, $line) = caller;
 
     my $d = $args{default};
-    my $default = is_arrayref($d) ? sub { [%$d] } : is_hashref($d) ? sub { +{%$d} } : $d;
+    my $default = is_arrayref($d) ? sub { [@$d] } : is_hashref($d) ? sub { +{%$d} } : $d;
     my $coerce  = $args{coerce};
     my $is      = $args{is} || 'rw';
 
@@ -420,8 +421,8 @@ sub has {
 
     my $set = '';
     if ($is eq 'rw') {
-        $set = is_coderef $coerce ? qq{$member = scalar \$coerce->(\$_[1]) if \$#_;}
-                : defined $coerce ? qq{$member = do { local $_; shift; $coerce } if \$#_;}
+        $set = is_coderef $coerce ? qq{$member = scalar \$coerce->(\@_[1..\$#_]) if \$#_;}
+                : defined $coerce ? qq{$member = do { local @_ = (\@_[1..\$#_]); $coerce } if \$#_;}
                                   : qq{$member = \$_[1] if \$#_;};
     }
 
@@ -758,6 +759,7 @@ sub search_limited {
 =func simple_expression_query
 
     $query = simple_expression_query($expression, @fields);
+    $query = simple_expression_query($expression, $operator, @fields);
 
 Generate a query, like L</query>, to be used with L</search> but built from a "simple expression" as
 L<described here|https://keepass.info/help/base/search.html#mode_se>.
@@ -976,6 +978,14 @@ sub uuid {
 
 }
 
+=func UUID_NULL
+
+Get the null UUID (i.e. string of 16 null bytes).
+
+=cut
+
+sub UUID_NULL() { "\0" x 16 }
+
 ### --------------------------------------------------------------------------
 
 # Determine if an array looks like keypairs from a hash.
This page took 0.022467 seconds and 4 git commands to generate.