The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
print "1..1\n";

#$IO::String::DEBUG++;

use IO::String;
$io = IO::String->new;

print $io "Heisan\n";
$io->print("a", "b", "c");

{
    local($\) = "\n";
    print $io "d", "e";
    local($,) = ",";
    print $io "f", "g", "h";
}

$foo = "1234567890";

syswrite($io, $foo, length($foo));
$io->syswrite($foo);
$io->syswrite($foo, length($foo));
$io->write($foo, length($foo), 5);
$io->write("xxx\n", 100, -1);

for (1..3) {
    printf $io "i(%d)", $_;
    $io->printf("[%d]\n", $_);
}
select $io;
print "\n";

$io->setpos(0);
print "h";


local *str = $io->string_ref;

select STDOUT;
print $str;

print "not " unless $str eq "heisan\nabcde\nf,g,h\n" .
                            ("1234567890" x 3) . "67890\n" .
                            "i(1)[1]\ni(2)[2]\ni(3)[3]\n\n";
print "ok 1\n";