ベアワード「STDOUT」を使用しなければならない場合もあれば、ベアワードが機能しない場合もあれば、ベアワードまたは別の形式を使用できる場合もあります。いつフォームを選択する必要があるのか、いつ別のフォームを選択できるのか、いつフォームを選択できるのかを教えてくれるルールはありますか?
#!/usr/bin/env perl
use warnings;
use 5.12.0;
use utf8;
print STDOUT "Something\n"; # works
print \*STDOUT "Something\n"; # String found where operator expected
print { STDOUT } "Something\n"; # Bareword "STDOUT" not allowed while "strict subs" in use
print { \*STDOUT } "Something\n" # works
my $fh;
$fh = -t STDOUT ? STDOUT : STDERR; # Bareword "STDOUT"/"STDERR" not allowed while "strict subs" in use
$fh = -t STDOUT ? \*STDOUT : \*STDERR; # works
$fh = -t \*STDOUT ? \*STDOUT : \*STDERR; # works