[SP-pm] Printer.pm - aberto a comentários.

Eduardo Verissimo everissimo at gmail.com
Fri Jan 29 04:57:06 PST 2010


Eu acredito que há motivos para fazer de uma maneira ou de outra. Se
você não puder viver sem o conteúdo daquele arquivo, um die faz todo o
sentido. No entanto, se você quiser prosseguir com o processamento, o
código do Carneiro pode ser mais adequado. Porém, ainda é possível
aproveitar o retorno de open para saber se houve erro:

if (open(F, '<', $file))
{
# Código para arquivo aberto
}
else
{
# Código para erro na abertura
}

Essa forma tem a vantagem de delimitar a ação que usa os dados do
arquivo que foi aberto.

O argumento da consistência é legal. Mas convenções só são legais
porque podemos escolher quando segui-las. :D

Eduardo Veríssimo

2010/1/29 Nelson Ferraz <nferraz em gmail.com>:
>> Q frescura! porque não simplesmente:
>> my $file = 'enterprise.txt'
>> eval{open my $fabricante,'<', $file};
>> if($!){
>>                print "\nProblemas ao abrir o arquivo '$file'  -  $!";
>> }else {
>> #Alguma coisa util aqui...
>>
>> }
>
> Uma razao simples: consistencia.
>
> A forma mais usada pela comunidade e':
>
> open my $f, '<', $file or die "Can't open: $!\n";
> # ...
> close $f;
>
> Se voce escrever de maneira diferente, todo mundo que for ler seu
> codigo vai ter que parar por um momento e analisar o codigo, para
> tentar descobrir porque diabos voce fez daquele jeito.
>
> TIMTOWTDI nao significa que voce deve, necessariamente, fazer tudo de
> uma maneira diferente.
>
> --
> Nelson Ferraz
>
> Free Software Foundation Associate Member #3203
> Projeto Software Livre Brasil (www.softwarelivre.org.br)
> Sociedade Perl do Brasil (www.perl.org.br)
> Rede Livre de Compartilhamento de Cultura Digital
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


More information about the SaoPaulo-pm mailing list