The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

use strict;
my $json = q({
"users": [
{ "name": "Alice", "email": "alice@example.com" },
{ "name": "Bob", "email": "bob@admin.com" },
{ "name": "Carol", "email": "carol@example.org" }
]
});
my $jq = JQ::Lite->new;
my @matched_bob = $jq->run_query($json, '.users[] | select(.name match "Bob")');
my @matched_admin = $jq->run_query($json, '.users[] | select(.email match "^bob@")');
my @matched_fail = $jq->run_query($json, '.users[] | select(.name match "David")');
is($matched_bob[0]{name}, 'Bob', 'matched user name = Bob');
is($matched_admin[0]{email}, 'bob@admin.com', 'matched email start with bob@');
ok(!@matched_fail, 'no match for David');
done_testing;