use Modern::Perl;
my @t = qw(name John number 7 status unknown);
my $str = '';
while (@t) {
$str .= sprintf('%s=%s', shift @t, shift @t);
$str .= '&' if @t;
}
say $str;
####
use Modern::Perl;
use URI::Escape qw/uri_escape/;
my @t = qw(name John number 7 status unknown);
$t[1] = 'John Smith'; # something that needs escaping
my $str = '';
while (@t) {
$str .= sprintf(
'%s=%s',
uri_escape(shift @t),
uri_escape(shift @t),
);
$str .= '&' if @t;
}
say $str;
####
use Modern::Perl;
use URI::Escape qw/uri_escape/;
my @t = qw(name John number 7 status unknown);
my %th = @t; # cast to hash
my $str = join '&',
map { sprintf '%s=%s', uri_escape($_), uri_escape($th{$_}) }
keys %th;
say $str;