Latest web development tutorials

gestión de errores Perl

El programa se está ejecutando, siempre se encontrará con una variedad de errores, como abrir un archivo que no existe.

El programa se está ejecutando se detendrá si se produce un error, tenemos que usar algunos métodos para evitar errores de detección, impidiendo así que el programa se cierra.

Perl proporciona un error de varios procesamiento realizado en el método, a continuación, se introdujo una por una.


if

si la instrucción puede determinar el valor de retorno de la declaración, los ejemplos son los siguientes:

if(open(DATA, $file)){
   ...
}else{
   die "Error: 无法打开文件 - $!";
}

Programa variable $! Devuelve un mensaje de error. También podemos simplificar el código anterior para el siguiente código:

open(DATA, $file) || die "Error: 无法打开文件 - $!";

menos que la función

menos que la función y si por el contrario, sólo cuando la expresión devuelve false se llevará a cabo de la siguiente manera:

unless(chdir("/etc")){
   die "Error: 无法打开目录 - $!";
}

a menos que la declaración cuando se desea establecer un recordatorio de error es muy útil.Lo que también se puede abreviar como el código de seguridad:

die "Error: 无法打开目录!: $!" unless(chdir("/etc"));

El mensaje de error anterior sólo cuando las circunstancias cambiarán salida de error del directorio.


operador ternario

El siguiente es un ejemplo sencillo de un operador ternario:

print(exists($hash{value}) ? '存在' : '不存在',"\n");

Los ejemplos anteriores que utilizamos el operador ternario existe para determinar el valor hash.

Ejemplos incluyen una expresión de dos valores, el formatoes :? Un valor de la expresión: Valor II.


función de advertir

función de advertir se utiliza para desencadenar un mensaje de advertencia, ninguna otra operación, la salida a STDERR (archivo de salida estándar), normalmente se usa para indicar al usuario:

chdir('/etc') or warn "无法切换目录";

la función de matriz

función de matriz es similar para advertir, pero será una salida. Por lo general, con mensajes de error de salida muy ruidosos:

chdir('/etc') or die "无法切换目录";

módulo de la carpa

En script en Perl, método comúnmente utilizado es el uso de advertir al informe de error () or die () para generar informes o error. Para el módulo de la carpa, que puede generar mensajes para proporcionar niveles adicionales de control, especialmente en el interior del módulo.

módulo de la carpa estándar proporciona una advierten () y mueren () es una alternativa, que proporcionan más información en la prestación de posicionamiento incorrecto, y más amigable. Cuando se utiliza en un módulo, el mensaje de error contiene el nombre del módulo y el número de línea.

función de la carpa

función de la carpa puede dar salida a la información de seguimiento sobre el programa, similar a advertir a funcionar normalmente enviará la información a STDERR:

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   carp "Error in module!";
}
1;

En la secuencia de comandos llama al siguiente procedimiento:

use T;
function();

El programa anterior, la salida es:

Error in module! at test.pl line 4

función clica

clica () y advertir () es similar, a condición de que el error en el seguimiento posterior de pila.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp qw(cluck);

sub function {
   cluck "Error in module!";
}
1;

En la secuencia de comandos llama al siguiente procedimiento:

use T;
function();

El programa anterior, la salida es:

Error in module! at T.pm line 9
	T::function() called at test.pl line 4

función croar

estirar la pata () y morir (), como se puede terminar la escritura.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   croak "Error in module!";
}
1;

En la secuencia de comandos llama al siguiente procedimiento:

use T;
function();

El programa anterior, la salida es:

Error in module! at test.pl line 4

función de confesar

confiesan () y morir () es similar, pero ofrece a partir del error del seguimiento posterior de pila.

package T;

require Exporter;
@ISA = qw/Exporter/;
@EXPORT = qw/function/;
use Carp;

sub function {
   confess "Error in module!";
}
1;

En la secuencia de comandos llama al siguiente procedimiento:

use T;
function();

El programa anterior, la salida es:

Error in module! at T.pm line 9
	T::function() called at test.pl line 4