my ($output, $messages); { open local(*STDOUT), '>', \$output or die $!; open local(*STDERR), '>', \$messages or die $!; # ... }