in reply to Re: Forcing UTF-8 output on STDOUT
in thread Forcing UTF-8 output on STDOUT

Thanks.
"Do you really want to send the output to a file named STDOUT?"

Not really. What I was trying to do is have a medium-sized script be able to alternate between writing output to a file or to stdout itself, depending on an option.

. . . if (defined($opt{'o'})) { $output = $opt{'o'}; $output =~ s/[\0-\x1f]//g; if ($output =~ /^([-\/\w\.]+)$/) { $output = $1; } else { die("Bad path or file name: '$output'\n"); } } else { $output = '/dev/stdout'; } . . . open(my $out, $mode, $output) or die("Could not open '$output' for writing: $!\n");
That way I can use the same print statements for either purpose. I presume there is a better way for all that, however.

Replies are listed 'Best First'.
Re^3: Forcing UTF-8 output on STDOUT
by choroba (Cardinal) on Feb 11, 2021 at 17:16 UTC
    > alternate between writing output to a file or to stdout itself

    select?

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
A reply falls below the community's threshold of quality. You may see it by logging in.