require Safe;

print "1..9\n";

$foo = "ok 1\n";
%bar = (key => "ok 2\n");
@baz = "o";
push(@baz, "3"); # Two steps to prevent "Identifier used only once..."
$glob = "ok 4\n";
@glob = qw(not ok 9);

$" = 'k ';

sub sayok5 { print "ok 5\n" }

$cpt = new Safe;
$cpt->share(qw($foo %bar @baz *glob &sayok5 $"));

$err = $cpt->reval(q{
    print $foo ? $foo : "not ok 1\n";
    print $bar{key} ? $bar{key} : "not ok 2\n";
    if (@baz) {
	print "@baz\n";
    } else {
	print "not ok 3\n";
    }
    print $glob;
    sayok5();
    $foo =~ s/1/7/;
    $bar{new} = "ok 8\n";
    @glob = qw(ok 9);
});
print $err ? "not ok 6\n#$err" : "ok 6\n";
$" = ' ';
print $foo, $bar{new}, "@glob\n";