Uso do definido com Filehandle e while Loop
Enquanto lê um livro sobre programação avançada em Perl (1), Me deparei com este código:
while (defined($s = <>)) {
...
Existe algum motivo especial para usardefined
aqui? O documentação para perlop diz:
Nessas construções de loop, o valor atribuído (se a atribuição é automática ou explícita) é testado para verificar se está definido. O teste definido evita problemas em que a linha tem um valor de string que seria tratado como falso pelo Perl, por exemplo, um""
ou"0"
sem nova linha final. Se você realmente deseja que esses valores finalizem o loop, eles devem ser testados explicitamente: [...]
Então, haveria uma caixa de canto ou isso é simplesmente porque o livro é muito antigo e o @ automátidefined
test foi adicionado em uma versão recente do Per
(1)rogramação Avançada em Perl, Primeira Edição, Sriram Srinivasan. O'Reilly (1997)