Read key-value text back into direct scalar lookups.

Decode Pairs

decode_pairs.pl
use strict;
use warnings;

my $wanted = ;
my $encoded = "name=Ada;role=admin";
my %fields;

for my $pair (split /;/, $encoded) {
    my ($key, $value) = split /=/, $pair;
    $fields{$key} = $value;
}

my $result = exists $fields{$wanted} ? $fields{$wanted} : "none";

print "wanted=$wanted\n";
print "result=$result\n";
print "count=" . scalar(keys %fields) . "\n";
use strict;
use warnings;

my $wanted = ;
my $encoded = "name=Ada;role=admin";
my %fields;

for my $pair (split /;/, $encoded) {
    my ($key, $value) = split /=/, $pair;
    $fields{$key} = $value;
}

my $result = exists $fields{$wanted} ? $fields{$wanted} : "none";

print "wanted=$wanted\n";
print "result=$result\n";
print "count=" . scalar(keys %fields) . "\n";
use strict;
use warnings;

my $wanted = ;
my $encoded = "name=Ada;role=admin";
my %fields;

for my $pair (split /;/, $encoded) {
    my ($key, $value) = split /=/, $pair;
    $fields{$key} = $value;
}

my $result = exists $fields{$wanted} ? $fields{$wanted} : "none";

print "wanted=$wanted\n";
print "result=$result\n";
print "count=" . scalar(keys %fields) . "\n";
decode-pairs Decoding splits serialized text into fields that code can inspect.