Pregunta

¿Alguien puede explicarme sobre carp ¿Subrutina con el código de PERL de muestra?

¿Fue útil?

Solución

Ver el perldoc para carpa.

carp es una alternativa para Perl's warn función que utiliza información de rastreo de pila para mostrar dónde llamó una función que emitió una advertencia. Esto puede ser más útil que warnEl comportamiento de decirle dónde ocurrió la advertencia.

Un ejemplo:

Este programa:

1: sub square_root {
2:  my $arg = shift;
3:  if ($arg < 0) {
4:    warn "Can't take square root of a negative number";
5:  } else {
6:    return sqrt($arg);
7:  }
8: }
9: print square_root(-4);

Te dijo:

Can't take square root of a negative number at carpdemo.pl line 4.

Pero si cambiamos warn a carp:

1: use Carp;
2: sub square_root {
3:  my $arg = shift;
4:  if ($arg < 0) {
5:    carp "Can't take square root of a negative number";
6:  } else {
7:    return sqrt($arg);
8:  }
9: }
10: print square_root(-4);

te dice:

Can't take square root of a negative number at carpdemo.pl line 4
        main::square_root(-4) called at carpdemo.pl line 10

La línea adicional de información es útil para rastrear lugares donde podría estar utilizando una función o módulo incorrectamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top