STDIN
è il filehandle documentato. Esiste anche stdin
, che è aliasato a STDIN
, ma funziona solo nel pacchetto main::
: main::stdin
è lo stesso di main::STDIN
(come documentato in perlop - Perl operators and precedence).
In un pacchetto, pertanto,
package My::Package;
sub xx {
print while <stdin>;
}
stdin
viene interpretato come My::Package::stdin
, che non esiste. È possibile utilizzare main::stdin
da un pacchetto, ma utilizzando lo standard STDIN
(che punta sempre a main::STDIN
, anche da un pacchetto) è molto più pulito.
'stdin': Devo amare le caratteristiche non documentate. Stick con 'STDIN' – tjd