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

Luis Motta Campos luismottacampos at yahoo.co.uk
Fri Jan 29 13:04:11 PST 2010


Andre Carneiro wrote:
> Acho q vc não entendeu o ponto da 'frescura'.
> 
> A frescura estava em fazer q{<}, ao invés de simplesmente '<'. O
> resto do código é tratamento de erro(não muito bom, por sinal). Mas
> isso não tem nada de diferente.
> 
> 'open... or die $!' é uma situação que eu considero ruim, simplemente
> porque para o programa sem maiores explicações. E isto não é uma boa
> idéia(ao meu ver, pelo menos). Eu quis expressar apenas que é melhor
> ter no mínimo, algum tipo de tratamento de erro...

Mestre André,

Se o seu open-or-die está "matando" o programa, é provavelmente por que
você está usando menos blocos "eval" do que deveria. Eu gosto do modelo
de exceções:

sub open_or_die {
  my ( $filename, $mode )= @_;
  open my $handle, $mode, $filename
    or die $!;
  return $handle;
}

my $file = eval { open_or_die( 'arquivo.txt', '<' ) };

if ($@) { # deu merda, processa erro
}

Assim, você deixa a responsabilidade de tratar erros para quem entende
do que está acontecendo. Se quem chama a função não trata erro, a
punição é pena de morte. Literalmente. :)

Meus EUR0.02.

Putamplexos.
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


More information about the SaoPaulo-pm mailing list