Существуют ли правила, которые говорят мне, какую форму STDOUT/STDERR/SDTIN я должен выбрать?

Иногда мне приходится использовать голое слово "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 
10
задан sid_com 7 May 2012 в 08:24
поделиться