The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl5
use strict;
use warnings;

use Test::More tests => 10;
use CGI::Struct;

# Make sure odd characters work

my %inp = (
	"h{xy'z}" => 'singlequote',
	'h{xy"z}' => 'doublequote',
	'h{xy/z}' => 'slash',
	'h{xy\\z}' => 'backslash',
	"h{x\x{ff}z}" => '8-bit char',
	'h{xy$z}' => 'dollar',
	'h{xy@z}' => 'at',
	'h{xy%z}' => 'percent',
	'h{xy#z}' => 'hash',
);
my @errs;
my $hval = build_cgi_struct \%inp, \@errs;

is(@errs, 0, "No errors");

for my $k (keys %inp)
{
	(my $ok = $k) =~ s/h\{(.*)}/$1/;
	is($hval->{h}{$ok}, $inp{$k}, "$k copied right");
}